And*_*reL 7 python list-comprehension list slice python-2.7
假设:
L = [(0,'a'), (1,'b'), (2,'c')]
Run Code Online (Sandbox Code Playgroud)
如何获取0每个索引tuple作为假装结果:
[0, 1, 2]
Run Code Online (Sandbox Code Playgroud)
为了得到我使用python list comprehension并解决了问题:
[num[0] for num in L]
Run Code Online (Sandbox Code Playgroud)
尽管如此,它必须是一种切割它的 L[:1] pythonic 方式,但当然这种滑动不起作用.
有更好的解决方案吗?
您可以使用*拆包zip().
>>> l = [(0,'a'), (1,'b'), (2,'c')]
>>> for item in zip(*l)[0]:
... print item,
...
0 1 2
Run Code Online (Sandbox Code Playgroud)
对于Python 3,zip()不会list自动生成,因此您必须将zip对象发送到list()或使用next(iter())或者其他内容:
>>> l = [(0,'a'), (1,'b'), (2,'c')]
>>> print(*next(iter(zip(*l))))
0 1 2
Run Code Online (Sandbox Code Playgroud)
但你的已经很好了.