我想压缩以下列表列表:
>>> zip([[1,2], [3,4], [5,6]])
[[1,3,5], [2,4,6]]
zip
仅当列表分为多个单独的组件时,才可以使用当前实现来实现:
>>> zip([1,2], [3,4], [5,6])
(1, 3, 5), (2, 4, 6)]
无法弄清楚如何拆分列表并将各个元素传递给zip
。优选功能性解决方案。
我想压缩以下列表列表:
>>> zip([[1,2], [3,4], [5,6]])
[[1,3,5], [2,4,6]]
zip
仅当列表分为多个单独的组件时,才可以使用当前实现来实现:
>>> zip([1,2], [3,4], [5,6])
(1, 3, 5), (2, 4, 6)]
无法弄清楚如何拆分列表并将各个元素传递给zip
。优选功能性解决方案。
Answers:
试试这个:
>>> zip(*[[1,2], [3,4], [5,6]])
[(1, 3, 5), (2, 4, 6)]
请参阅解压缩参数列表:
当参数已经在列表或元组中,但需要针对需要单独的位置参数的函数调用进行解压缩时,就会发生相反的情况。例如,内置的range()函数需要单独的start和stop参数。如果不能单独使用它们,请使用* -operator编写函数调用,以将参数从列表或元组中解包:
>>> range(3, 6) # normal call with separate arguments
[3, 4, 5]
>>> args = [3, 6]
>>> range(*args) # call with arguments unpacked from a list
[3, 4, 5]