假设:
L = [(0,'a'), (1,'b'), (2,'c')]
如何获取每个元组
的索引0
作为假装结果:
[0, 1, 2]
为此,我使用了 python list comprehension
并解决了问题:
[num[0] for num in L]
不过,它一定是一种 pythonic 方式来像 L[:1]
那样切片,但是当然这种切片不起作用。
有没有更好的解决方案?
最佳答案
您可以使用 *
和 zip()
解包。
>>> l = [(0,'a'), (1,'b'), (2,'c')]
>>> for item in zip(*l)[0]:
... print item,
...
0 1 2
对于 Python 3,zip()
不会自动生成 list
,因此您要么必须将 zip
对象发送到list()
或使用 next(iter())
或其他东西:
>>> l = [(0,'a'), (1,'b'), (2,'c')]
>>> print(*next(iter(zip(*l))))
0 1 2
但是你的已经很好了。
关于python - 如何在 python 中切片元组列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33829535/