python将列表附加到元组

时间:2014-02-28 20:35:50

标签: python tuples

我有以下元组:

vertices = ([0,0],[0,0],[0,0]);

在每个循环中,我想附加以下列表:

[x, y]

我应该如何处理它?<​​/ p>

5 个答案:

答案 0 :(得分:5)

您无法将list附加到tuple,因为元组为"immutable"(无法更改)。然而,将元组附加到列表很容易:

vertices = [(0, 0), (0, 0), (0, 0)]
for x in range(10):
    vertices.append((x, y))

您可以将元组一起添加以创建 new ,更长的元组,但这与元组的目的有很大差异,并且随着元素数量的增加而减慢。在这种情况下使用列表是首选。

答案 1 :(得分:1)

您无法修改元组。您需要使用包含附加顶点的新元组替换元组,或将其更改为列表。列表只是一个可修改的元组。

vertices = [[0,0],[0,0],[0,0]]

for ...:
    vertices.append([x, y])

答案 2 :(得分:1)

您可以连接两个元组:

>>> vertices = ([0,0],[0,0],[0,0])
>>> lst = [10, 20]
>>> vertices = vertices + tuple([lst])
>>> vertices
([0, 0], [0, 0], [0, 0], [10, 20])

答案 3 :(得分:1)

如上所述,您可能需要一个列表。但是如果你真的需要一个元组,你可以通过连接元组来创建一个新的元组:

vertices = ([0,0],[0,0],[0,0])
for x in (1, 2):
    for y in (3, 4):
        vertices += ([x,y],)

或者,为了提高效率,在构建元组时使用列表并在结束时进行转换:

vertices = ([0,0],[0,0],[0,0])
#...
vlist = list(vertices)
for x in (1, 2):
    for y in (3, 4):
        vlist.append([x, y])
vertices = tuple(vlist)

在任何一个结尾处,vertices是:

([0, 0], [0, 0], [0, 0], [1, 3], [1, 4], [2, 3], [2, 4])

答案 4 :(得分:0)

不确定我理解你,但是如果你想在每个顶点附加x,y,你可以做类似的事情:

vertices = ([0,0],[0,0],[0,0])

for v in vertices:
    v[0] += x
    v[1] += y