2013-12-23 2 views
3

Я пытаюсь найти индекс суб-списка, возвращающего значение с тем же индексом другого под-списка. Я продолжаю сталкиваться с проблемой, когда у меня есть дубликаты, так как она возвращает минимальный индекс.Python - индекс дублирующего элемента в списке

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 
+0

Я могу ошибаться, но Wouldn» t это просто 'строки [1]'? Для каждого элемента в 'lines [0]' вы хотите найти индекс этого вхождения элемента (а не первое вхождение) и вернуть соответствующий элемент из 'lines [1]'. Но последовательность индексов, которая будет генерировать, равна только 0, 1, 2, ... – twalberg

ответ

1

думаю есть. В обоих итерации поэтому цикл ch является 1 так 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 
0

Вы должны изменить свои LEN (линии) -1 Леном (строки) в то время как , потому что я думаю, что он не проверяет все значения.

+0

Мне нужно только значение следующего подсписчика, из индекса curent sublist. Как только я достиг последней подстроки, я получаю ошибку, поэтому я использовал len (lines) -1. – user2770624

0

index() находит первое вхождение переданного элемента списка, поэтому всякий раз, когда вы звоните [1,1].index[1], вы всегда получите 0.

Если ваша цель состоит в том, чтобы просто получить доступ к элементу из списка б из индекса в списке a-

a = [1,1] 
b = [3,4] 
for x in range(0,len(a)): 
    print b[x] 
Смежные вопросы