感谢您查看我的问题。
我想知道像我这样的人如何在for循环中找到两个单独列表的索引,我知道你可以使用enumerate使用1个列表,并且你可以通过zip方法查看多个元素,但有没有办法获得2个或更多单独的索引,每个索引属于一个单独的列表。
例如
列表1的Index1
列表2的索引2
理想情况下,我希望在单个for循环中发生这种情况。
P.S对整个编程来说还是一个新手,所以我只能掌握循环,对象,数据结构等基本概念,所以没有技术;)
答案 0 :(得分:0)
如果我找对了你,你不是在寻找将两个列表压缩在一起但是要做一些事情,比如将a的每个元素映射到b的每个元素?就像两套笛卡尔积?
所以对于两个列表:
a = ['1', '2', '3']
b = ['ba', 'bb']
你可以使用list comprehensions为这样的每个元素迭代它们:
[(x,y) for x in a for y in b]
这会生成以下输出:
1 ba
1 bb
2 ba
2 bb
3 ba
3 bb
有关列表推导的更多信息,请查看:PythonDocs - List Comprehension
您可以使用嵌套for循环获得相同的结果:
for x in a:
for y in b:
print(x + " " + y)
除此之外,cartesion产品还附带了itertools:
import itertools
for x,y in itertools.product(a,b):
print(x + " " + y)
这也会生成与嵌套for循环或列表推导相同的输出。
修改强>
关于你的评论(我认为你不想要拉链?)izip例如正是你想要的。
输入:
a = ['1', '2', '3']
b = ['ba', 'bb']
像这样的izip:
import itertools
for x,y in itertools.izip(a,b):
print(x + " " + y)
会生成以下输出:
1 ba
2 bb