我是python的新手并尝试垂直打印几个列表
例如list_1 = [1,2,3]
和list_2 = [4,5]
:
输出:
1 4
2 5
3 None
我发现map(None, list_1, list_2)
可以达到这个目的。
但是,我可能要有> 10个列表才能垂直打印。我想知道是否有一些巧妙的方法来做到这一点。
答案 0 :(得分:0)
您可以使用map(None, list_1, list_2, list_3, ...)
,因为map
可以使用任意数量的参数。
但是,编号变量名称通常不是一个好主意。这通常表示您应该使用list
或tuple
代替。因此,您应该拥有一个变量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
。此表示法允许您向函数发送任意数量的参数。