2010-11-08 3 views
5

Какой правильный синтаксис для добавления переупорядоченного кортежа в список?Добавление кортежей в списки

Например, если у меня было два списка:

>>> a = [(1,2,3),(4,5,6)] 
>>> b = [(0,0)] 

Тогда я хотел бы ожидать следующее работы:

>>> b.append((a[0][0],a[0,2])) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: list indices must be integers, not tuple 

Кроме того, когда он сообщает мне, что индексы должны быть целыми числами, как приходят это работает?

>>> b.append((7,7)) 
>>> b 
[(0, 0), (7, 7)] 
+0

Можете ли вы уточнить свое изменение, чтобы сказать, что эта опечатка была основной проблемой? В настоящее время неясно, если ваше редактирование разъясняет вопрос или определяет основную причину ошибки. –

ответ

4

вы попытаетесь сделать это:

(a[0][0],a[0,2]) 
      ^^^ 

это как делает:

(a[0][0],a[(0,2)]) 

который, как ошибки сказал: индексы список должны быть целыми числами, а не кортеж

если я не ошибаюсь, думаю, вы хотели:

b.append((a[0][0],a[0][2])) 
0

a [0,2] - ваша проблема.

Он не жалуется на добавление, он говорит вам, что [0,2] не может использоваться в качестве индекса для списка a.

1

Ваша задача заключается в следующем:

b.append((a[0][0],a[0,2])) 
        ^

Вы пытаетесь использовать несуществующую индекс кортежа [0, 2], когда вы имеете в виду [0][2]

1

The индексы должны быть целыми числами. Это просто опечатка, где у вас есть a[0,2] вместо a[0][2]. Номер [0,2] является попытка Индекс by tuple.

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