Python - 列表中重复项的索引

时间:2013-12-23 21:24:10

标签: python-2.7

我试图找到一个子列表的索引返回与另一个子列表的索引相同的值。当我有重复时,我一直遇到问题,因为它只返回最低的索引。

lines = [ [ 1 , 1], [3, 4] ]
x = 0
while x < (len(lines)-1):
    for ch in lines[x]:
        print lines[x+1][lines[x].index(ch)]
    x += 1

我想获得

的输出
3
4

但我正在

3
3

3 个答案:

答案 0 :(得分:1)

我想我明白了。在两次迭代中,for循环ch1,因此lines[x].index(ch)将为1.为什么不以更直接的方式循环遍历第二个:

lines = [ [ 1 , 1], [3, 4] ]
x = 0
y=0
while x < (len(lines)-1):
    while y < len(lines[x]):
        print lines[x+1][y]
        y= y+1
    x = x+1

答案 1 :(得分:0)

你应该在while语句中用len(lines)改变你的len(行)-1,因为我认为它不会测试所有的值。

答案 2 :(得分:0)

index()找到列表中传递元素的第一个出现,因此每当您调用[1,1].index[1]时,您将始终获得0.

如果您的目标是从列表中的索引a -

中简单地访问列表b的项目
a = [1,1]
b = [3,4]
for x in range(0,len(a)):
    print b[x]