Python将列表追加到元组中
我有一个这样的元组:
vertices = ([0,0],[0,0],[0,0]);
然后在每次循环中,我想添加以下列表:
[x, y]
我应该怎么做呢?
5 个回答
0
我不太明白你的意思,不过如果你想在每个顶点上添加x和y的值,可以这样做:
vertices = ([0,0],[0,0],[0,0])
for v in vertices:
v[0] += x
v[1] += y
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])
1
你可以把两个元组连接在一起:
>>> vertices = ([0,0],[0,0],[0,0])
>>> lst = [10, 20]
>>> vertices = vertices + tuple([lst])
>>> vertices
([0, 0], [0, 0], [0, 0], [10, 20])
1
元组是不能被修改的。如果你想添加一个新的元素,你需要用一个新的元组来替换原来的元组,或者把它改成一个列表。列表就是可以修改的元组。
vertices = [[0,0],[0,0],[0,0]]
for ...:
vertices.append([x, y])
5
你不能把一个 list
添加到 tuple
里,因为元组是“不可变的”(也就是说它们不能被改变)。不过,把一个 tuple 添加到 list 里是很简单的:
vertices = [(0, 0), (0, 0), (0, 0)]
for x in range(10):
vertices.append((x, y))
你可以把多个元组加在一起,形成一个 新的、更长的元组,但这样做其实不太符合元组的用途,而且当元素越来越多时,速度会变得很慢。在这种情况下,使用列表会更好。