有没有一种聪明的方法可以在Python语言中遍历两个列表(不使用列表理解)?
我的意思是,就像这样:
# (a, b) is the cartesian product between the two lists' elements
for a, b in list1, list2:
foo(a, b)
而不是:
for a in list1:
for b in list2:
foo(a, b)
发布于 2012-05-03 01:19:11
itertools.product()
就是这样做的:
for a, b in itertools.product(list1, list2):
foo(a, b)
它可以处理任意数量的可迭代对象,从这个意义上讲,它比嵌套的for
循环更通用。
发布于 2018-05-31 17:46:19
for a,b in zip(list1, list2):
foo(a,b)
zip
将列表/数组的元素按元素顺序组合成元组。例如:
list1 = [1,2,5]
list2 = [-2,8,0]
for i in zip(list1,list2):
print(i)
>>> (1, -2)
>>> (2, 8)
>>> (5, 0)
发布于 2018-05-31 18:03:08
Use zip it允许你一次压缩两个或更多的列表并进行迭代。
list= [1, 2]
list2=[3,4]
combined_list = zip(list, list2)
for a in combined_list:
print(a)
https://stackoverflow.com/questions/10418575
复制相似问题