2016-01-20 2 views
1

Итак, я не совсем понимаю .index() и был возиться с блоком кода, чтобы попытаться понять его, но он все еще не нажимает на меня.Не понимайте индекс списка Python

Когда Мессинг с этим списком:

myList = [5024,3,True,6.5,12,1,2,2,2] 
print(myList) 
print(myList.index(2)) 

Он выходит печать: 6 Где это 6 приходит?

В качестве другого примера:

myList = [5024,3,True,6.5,12,1,2,2,2] 
print(myList) 
print(myList.index(4)) 

Это troubleshooted как: 4 is not in list

, но при печати:

myList = [5024,3,True,6.5,12,1,2,2,2] 
print(myList) 
print(myList.index(1)) 

принты: 2

Это то, что я не Понимаю. Является ли программа подсчет количества вхождений 1 в этом списке? Если это так, при попытке сделать .index(2) в этом списке, то печатается 6 вместо 5.

Что здесь происходит?

+0

'myList.index (2)' is 6, потому что 'myList [6]' равно 2. 'myList.index (1)' is 2, потому что 'myList [2] == 1'. – vaultah

ответ

4

True интерпретируется как 1.

Как myList.index(value) возвращает первый индекс из value так вы получаете значения:

>>> myList = [5024,3,True,6.5,12,1,2,2,2] 
>>> myList.index(2) 
6 
>>> myList.index(1) 
2 

Если вы хотите, чтобы найти значение в определенном индексе, Применение:

myList[index] 
+0

Ох, он щелкнул! W00t! Я никогда не знал, что истинное значение интерпретировалось как целое. Спасибо, heemayl !! – faceless

+0

@Jeremy Нет проблем..считайте, что ответ принят, нажав галочку слева от моего ответа, если это помогло вам, чтобы эта проблема могла быть отмечена как решенная .. :) – heemayl

+0

'isinstance (True, bool)' и 'isinstance (True, int)' даст вам «True». 'bool' происходит от' int'. – Matthias

1

Data Structures - читать эту статью, если вам нужно больше информации.

list.index(x)

Возвращает индекс в списке первого элемента которого значение х. Это ошибка, если такой элемент отсутствует.

Вы можете получить доступ к элементам в своем списке по индексу. Индексы начинаются с 0. Если у вас есть список, давайте посмотрим, индексы элементов:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] list_of_nums

[0 1 2 3 4 5 6 7 8 9 ] индексы

Так что, если вы используете list_of_nums.index(3) он возвращает индекс первого вхождения элемента со значением 3 в списке, и это 2.

В вашем случае myList.index(2) возвращает индекс первого вхождения элемента со значением 2, который является 6.

myList.index(4) возвращает '4 is not in list', потому что в вашем списке нет такого элемента со значением 4. myList.index(1) возвращает элемент со значением True, потому что это первое вхождение элемента со значением 1, True == 1 и False == 0.

Таким образом, вы можете найти индекс любого элемента в своем списке, если знаете его значение. Также вы можете использовать индексы для получения значения, как это: myList[1] - 3

теперь я надеюсь, что это более ясно.

+0

'List.index ('3')' вызовет исключение. –

+0

@MarceloCantos уверен, но я не вижу его в своих объяснениях – tinySandy

+0

Извините, комментарий исправлен. –

Смежные вопросы