2015-03-07 3 views
1

Я числовой список, содержащий несколько повторяющихся элементов, как, например:Список индексирование в Python с дубликатами

list1 = [40, 62, 0, 5, 8, 3, 62] 

И список слов, содержащий соответствующие слова:

list2 = ['cat', 'dog', 'turtle', 'fox', 'elephant', 'eagle', 'scorpion'] 

т.е. есть 40 кошек, 62 собаки и т. Д.

Данные выше просто для представления. Каждому значению в list1 присваивается английское словарное слово в list2, соответствующее индексам i.e. Индекс 0 первого списка соответствует индексу 0 второго списка.

Как я могу быть уверен, что в цикле for, если я вызываю list1.index (i), где i - 62, он сначала вернет мне орла, а затем, когда цикл for будет выполнен снова, он будет пропустите первые 62 и перейдите ко второй 62 и верните мне скорпиона?

ответ

4
  1. Вы можете zip обе детали и итерацию вместе, чтобы получить соответствующие значения вместе, как этот

    >>> for number, word in zip(list1, list2): 
    ...  print(number, word) 
    ...  
    ... 
    40 cat 
    62 dog 
    0 turtle 
    5 fox 
    8 elephant 
    3 eagle 
    62 scorpion 
    
  2. Или вы можете использовать enumerate, чтобы получить текущий индекс элемента, из списка итерируемая и использовать индекс, чтобы получить соответствующее значение из другого списка

    >>> for index, number in enumerate(list1): 
    ...  print("index :", index, number, list2[index]) 
    ...  
    ... 
    index : 0 40 cat 
    index : 1 62 dog 
    index : 2 0 turtle 
    index : 3 5 fox 
    index : 4 8 elephant 
    index : 5 3 eagle 
    index : 6 62 scorpion 
    
+0

Хорошо, спасибо, сэр, это работает чудесно. * висит голова в стыде сейчас * Я буду принимать ваш ответ, как только система позволит мне. –