在单个for循环中访问两个或多个列表

时间:2011-06-03 15:39:18

标签: python python-3.x

如果我有两个相同长度的列表,list_a,list_b。

我可以将它们打印在一个for循环中,如下所示:

for i in range(0, len(list_a)):
    print "%s %s" % (list_a[i], list_b[i])

是否有任何替代和优雅的方式来完成上述任务?

我试过了

for a, b in list_a, list_b:
    print ""

2 个答案:

答案 0 :(得分:11)

您需要zip()

for a, b in zip(list_a, list_b):
     # whatever

当列表很长并且您使用的是Python 2.x时,您可能更喜欢itertools.izip()来保存一些内存。

答案 1 :(得分:0)

或者您也可以使用以下语句来组合列表:

map(lambda x,y,z: (x,y,z), list_a, list_b, list_c)