感谢您检查我的问题。有没有办法获得多个列表python的索引?
我想知道如何可以找到一个for循环内的两个单独的列表的索引,我知道你可以使用枚举来做到这一点,并且你可以通过zip来通过多个元素方法,但有没有办法获得2个或更多的单独索引,每个索引都属于一个单独的列表。
为列表1
索引2 e.g
指数1为列表2
理想化我想这是在一个单一的发生for循环。
PS还是很新的节目作为一个整体,所以我只能把握如循环,对象,数据结构等基本概念,所以没有什么技术;)
感谢您检查我的问题。有没有办法获得多个列表python的索引?
我想知道如何可以找到一个for循环内的两个单独的列表的索引,我知道你可以使用枚举来做到这一点,并且你可以通过zip来通过多个元素方法,但有没有办法获得2个或更多的单独索引,每个索引都属于一个单独的列表。
为列表1
索引2 e.g
指数1为列表2
理想化我想这是在一个单一的发生for循环。
PS还是很新的节目作为一个整体,所以我只能把握如循环,对象,数据结构等基本概念,所以没有什么技术;)
如果我有你的权利,你不搜索用于将两个列表压缩在一起,但是做一些像a的每个元素映射到b的每个元素的东西?像两套笛卡尔产品一样?
因此,对于两个列表:
a = ['1', '2', '3']
b = ['ba', 'bb']
你可以重复他们两个像这样通过遍历的每一个元素:
[(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)
除此之外,在笛卡尔产品均自带迭代工具:
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
感觉自由(不要忘记^^)如果事情还不清楚,就可以要求额外的东西......或投票并接受答案,如果一切正常(: – daniel451 2014-11-08 07:22:43
正是我在找的东西,你撞到了脑袋! !! – 2014-11-09 00:51:44
好吧不喜欢真的,你需要知道,这几乎是最好的答案,真的可以存在,羞耻我不能+1你 – 2014-11-09 01:02:26
什么是您预期的输出? – 2014-11-08 05:57:08
嗨Ashwini,我会在Q中以斜体显示!:) – 2014-11-08 06:01:41
目前我还不清楚你到底想要什么,但我猜你需要做的是将'index + 1'改为'index * 2 + 1'。 – 2014-11-08 06:08:46