将元组添加到列表中

时间:2010-11-08 17:17:53

标签: python list tuples

将重组元组添加到列表中的正确语法是什么?

例如,如果我有两个列表:

>>> 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)]

4 个答案:

答案 0 :(得分:4)

你试图这样做:

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

这就像在做:

(a[0][0],a[(0,2)])
像错误说的那样:列表索引必须是整数,而不是元组

如果我没弄错的话,我想你想做:

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

答案 1 :(得分:1)

你的问题是:

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

当你的意思是[0, 2]

时,你尝试使用不存在的元组索引[0][2]

答案 2 :(得分:1)

indices 必须是整数。这只是一个错字,你有a[0,2]而不是a[0][2][0,2]是按元组索引的尝试。

答案 3 :(得分:0)

a [0,2]是你的问题。

它没有抱怨追加,它告诉你[0,2]不能用作列表a的索引。