Список Python и распаковка кортежей - PullRequest
0 голосов
/ 25 июня 2019

спасибо, что ответили мне в первый раз .. У меня есть список или кортеж в Python; попробуйте распаковать вместо индекса, как показано ниже:

list1 = [1,2,3,4]
first,second,third,fourth = list1

Теперь все в порядке, если я использую это так:

first ====> вернется 1

но когда я использую его внутри [], это выглядит так:

list1[first] ====> вернется 2

швы это не будет считать индекс [0] в этом моде! Зачем? и как исправить?

Ответы [ 3 ]

0 голосов
/ 25 июня 2019

Поскольку first содержит целое число 1, то list1 [first] на самом деле list1 [1]

0 голосов
/ 25 июня 2019

Если вы хотите, чтобы ваши значения в list1 использовались как индексы на основе 1, но не хотите изменять list1, вы можете использовать (например):

list1[first-1]
0 голосов
/ 25 июня 2019

first установлен в 1, поэтому нормально, чтобы получить второй элемент списка. Например, если first было установлено как «спам», list1[first] просто потерпит неудачу:

>>> list1 = ["spam", "egg"]
>>> first, second = list1
>>> list1[first]

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: list indices must be integers or slices, not str

Я предлагаю использовать dict вместо:

 >>> dict1 = {"first": 1, "second": 2}
 >>> dict1["first"]
 1
...