Python垂直并排打印灵活数量的列表

时间:2014-07-07 18:32:24

标签: python list

我是python的新手并尝试垂直打印几个列表 例如list_1 = [1,2,3]list_2 = [4,5]

输出:

1 4  
2 5  
3 None  

我发现map(None, list_1, list_2)可以达到这个目的。

但是,我可能要有> 10个列表才能垂直打印。我想知道是否有一些巧妙的方法来做到这一点。

1 个答案:

答案 0 :(得分:0)

您可以使用map(None, list_1, list_2, list_3, ...),因为map可以使用任意数量的参数。

但是,编号变量名称通常不是一个好主意。这通常表示您应该使用listtuple代替。因此,您应该拥有一个变量list_1而不是变量list_10,...,columns

如果columns = [list_1, list_2],那么

import itertools as IT
rows = IT.izip_longest(*columns)

等同于map(None, list_1, list_2)并且与Python3兼容,后者删除了map(None, ...)选项。请注意,此表示法很好地概括为任意数量的列表,而无需您手动键入所有这些变量名称。

*中的IT.izip_longest(*columns, ...)Python's unpacking operator。它解包columns中的项目,并将这些项目作为单独的参数发送给IT.izip。此表示法允许您向函数发送任意数量的参数。