2014-07-11 1 views
-1

Предположим, у меня есть такой список.Элемент доступа во вложенном списке

internet = ["doge", "Putin", [0, 1, 0, "some string."]] 

Обычно, если я хотел бы получить доступ к элементам "doge" и "Putin", я бы просто сделать internet[0] или internet[1]. К сожалению, я не могу получить доступ к элементам 0, 1, 0 и "some string.". Я попытался сделать это, internet[2[0]], но я получаю эту ошибку.

TypeError: 'int' object has no attribute '__getitem__' 

Как получить доступ к элементу внутри вложенного списка? Если это то, что называется. Благодаря!

+0

Вы получаете ошибку, потому что, как говорили люди, вы не вставляете скобки. Когда вы это делаете, python интерпретирует «2 [0]» как «получить нулевой элемент буквального целого числа 2», что не имеет смысла и поэтому дает вам эту ошибку. – sovemp

ответ

3

Вы не вставляете скобки [...] для этого. Вместо этого, вы поместите их рядом друг с другом:

>>> internet = ["doge", "Putin", [0, 1, 0, "some string."]] 
>>> internet[2][0] # Get item 0 of item 2 in internet 
0 
>>> internet[2][1] # Get item 1 of item 2 in internet 
1 
>>> internet[2][2] # Get item 2 of item 2 in internet 
0 
>>> internet[2][3] # Get item 3 of item 2 in internet 
'some string.' 
>>> 
1

Попробуйте использовать

internet[2][0] 

вместо ...

1

Вы должны закончить каждую часть перед запуском другого:

>>> [1, [1, 2]][1[1]] 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: 'int' object has no attribute '__getitem__' 
>>> [1, [1, 2]][1][1] 
2 
>>> 

В принципе, вы хотите сначала получить внутренний список, а затем элемент в этом списке:

>>> internet = ["doge", "Putin", [0, 1, 0, "some string."]] 
>>> internet[2] 
[0, 1, 0, 'some string.'] 
>>> internet[2][1] 
1 
>>> internet[2][3] 
'some string.' 
>>>