簡體   English   中英

python將列表附加到元組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM