我试图通过在具有不等长度子列表的单个列表上使用Zip逆来获得预期结果。只是想知道是否有办法通过列表理解来实现这一点。
a = [[1,2],[1]]
print zip(*a)
result :
[(1, 1)]
Expected result:
[((1, 1)), ((2, None))]
答案 0 :(得分:0)
zip()
在一个序列用完时停止,即它只返回与最小子序列有元素一样多的项目。
返回的列表的长度被截断为最短参数序列的长度
itertools
有izip_longest()
,它运行在最长的序列上,为不存在的项返回填充元素:
>>> a = [[1,2],[1]]
>>> from itertools import izip_longest
>>> print list(izip_longest(*a))
[(1, 1), (2, None)]