Ami*_*ani 3 python tuples list
我有一个元组列表,像这样:
loft = [(1, 2), (3, 4), (5, 6)]
Run Code Online (Sandbox Code Playgroud)
我希望结果是这样的:
odd = [1, 3, 5]
even = [2, 4, 6]
Run Code Online (Sandbox Code Playgroud)
我可以这样实现:
odd = [x[0] for x in loft]
even = [x[1] for x in loft]
Run Code Online (Sandbox Code Playgroud)
但是我需要一行完成。我尝试了这个:
odd, even = [x[0], x[1] for x in loft]
Run Code Online (Sandbox Code Playgroud)
但是给我这个错误:
File "<stdin>", line 1
odd, even = [x[0], x[1] for x in loft]
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
可以一行完成吗?
您可以通过以下方式使用解包功能zip:
loft = [(1, 2), (3, 4), (5, 6)]
odd, even = zip(*loft)
Run Code Online (Sandbox Code Playgroud)
输出:
(1, 3, 5)
(2, 4, 6)
Run Code Online (Sandbox Code Playgroud)
如果希望结果是lists而不是tuples,则可以使用map:
loft = [(1, 2), (3, 4), (5, 6)]
odd, even = map(list, zip(*loft))
Run Code Online (Sandbox Code Playgroud)
输出:
[1, 3, 5]
[2, 4, 6]
Run Code Online (Sandbox Code Playgroud)