Почему мне не хватает некоторых индексов в списке, когда я печатаю их эквивалентными отрицательными индексами в python? - PullRequest
0 голосов
/ 18 июня 2020
list2 = ["money heist" , [2] , 1, 0.045, (5*3), -18%(-6*2), 0.345]

print(list2[0:])

list2[-5] = "Game OF Thrones"

print(list2[-5:])

выводится следующим образом:

['money heist', [2], 1, 0.045, 15, -6, 0.345]
['Game OF Thrones', 0.045, 15, -6, 0.345]

Что случилось с [2] и 1 ??

enter image description here

Ответы [ 2 ]

3 голосов
/ 18 июня 2020

В строке:

list2[-5] = 'Game of Thrones'

вы заменили третью (пятую сзади: -5) запись 1 на 'Game of Thrones'.

Затем на

print(list2[-5:])

вы начинаете печать с пятого последнего элемента и далее (-5:), что означает, что ваш вывод правильный. [2] не печатается, так как пропускается, а 1 заменяется другим значением.

0 голосов
/ 18 июня 2020

Давайте разберемся:

list2 = ["money heist" , [2] , 1, 0.045, (5*3), -18%(-6*2), 0.345]

print(list2[0:]), очевидно, напечатает весь список, потому что индекс начинается с 0.

Вызов list2[-5] = "Game OF Thrones" перезапишет пятый last, или, в данном случае,
третий элемент списка в "Game OF Thrones".

Итак, вы получите list2 = ["money heist", [2], "Game OF Thrones", 0.045, (5*3), -18%(-6*2), 0.345]

Наконец, когда вы запустите print(list2[-5:]),
вы указываете python печатать все из списка, начиная с индекса 2 (третий элемент) :

["Game OF Thrones" , 0.045, (5*3), -18%(-6*2), 0.345]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...