代码之家  ›  专栏  ›  技术社区  ›  Unreason

将元组追加到列表

  •  5
  • Unreason  · 技术社区  · 14 年前

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

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

    >>> 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 回复  |  直到 9 年前
        1
  •  4
  •   mouad    14 年前

    你已经试着这么做了:

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

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

    就像错误所说的:列表索引必须是整数,而不是元组

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

    b.append((a[0][0],a[0][2]))
    
        2
  •  1
  •   Rafe Kettler    14 年前

    你的问题是:

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

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

        3
  •  1
  •   Ben Jackson    14 年前

    这个 指数 a[0,2] 而不是 a[0][2] [0,2] 是试图 指数

        4
  •  0
  •   chauncey    14 年前

    [0,2]是你的问题。