前提是我有两个长度相同的列表list_a,list_b。访问单个for循环中的两个或多个列表
我可以打印他们的项目在一个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 ""
前提是我有两个长度相同的列表list_a,list_b。访问单个for循环中的两个或多个列表
我可以打印他们的项目在一个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 ""
您需要zip()
:
for a, b in zip(list_a, list_b):
# whatever
当名单很长,你在使用Python 2.x中,你可能更喜欢itertools.izip()
节省一些内存。
或者你也可以使用下面的语句列表合并:
map(lambda x,y,z: (x,y,z), list_a, list_b, list_c)
这也可以通过'map(None,list_a,list_b,list_c)来完成' 。与zip()不同的是,结果列表的长度等于最长的序列。不过,最好使用'itertools.izip_longest()'。 – 2011-06-03 15:51:00
是的,你是对的)))谢谢你,将开始在我的代码中使用它。 – 2011-06-03 15:52:48
搜索,搜索,搜索。 http://stackoverflow.com/questions/3229458/is-there-a-way-to-have-parallel-for-each-loops – 2011-06-03 17:28:36