[英]python appending a list to a tuple
我有跟隨元組:
vertices = ([0,0],[0,0],[0,0]);
在每個循環中,我想附加以下列表:
[x, y]
我該怎么辦呢?
您不能將list
附加到tuple
因為元組是“不可變的” (它們不能更改)。 但是,將元組附加到列表很容易:
vertices = [(0, 0), (0, 0), (0, 0)]
for x in range(10):
vertices.append((x, y))
您可以將元組一起添加以創建一個新的 ,更長的元組,但這強烈違背了元組的目的,並且隨着元素數量的增加而減慢。 在這種情況下使用列表是首選。
你不能修改元組。 您需要使用包含附加頂點的新元組替換元組,或將其更改為列表。 列表只是一個可修改的元組。
vertices = [[0,0],[0,0],[0,0]]
for ...:
vertices.append([x, y])
您可以連接兩個元組:
>>> vertices = ([0,0],[0,0],[0,0])
>>> lst = [10, 20]
>>> vertices = vertices + tuple([lst])
>>> vertices
([0, 0], [0, 0], [0, 0], [10, 20])
如上所述,您可能需要一個列表。 但是如果你真的需要一個元組,你可以通過連接元組來創建一個新的元組:
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])
不確定我理解你,但如果你想將x,y附加到每個頂點,你可以做類似的事情:
vertices = ([0,0],[0,0],[0,0])
for v in vertices:
v[0] += x
v[1] += y
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.