所以,基本上我有一個隊列(字符串列表列表)。現在,假設我想將“okay”附加到索引 1 處的列表,為什么它會附加到 Queue 中的所有列表?如何僅在隊列內將值附加到特定列表?Queue = []temp = []Queue.append(temp) # 12 - 8Queue.append(temp)Queue.append(temp)Queue[1].append('okay')print(Queue)[['okay'], ['okay'], ['okay']]
3 回答

隔江千里
TA貢獻1906條經驗 獲得超10個贊
您Queue
是完全相同列表的列表
Queue.append(temp)
不會創建新列表并將其添加到Queue
. 因此,當您更改 的一個元素時Queue
,實際上是在更改所有元素。
Queue.append([])
應該用于用單獨的空列表填充隊列。

炎炎設計
TA貢獻1808條經驗 獲得超4個贊
因為 Queue 中的三個項目不是三個不同的空列表:它們都是temp. 因此temp、Queue[0]和都是同一個對象,修改其中一個會導致修改所有對象Queue[1]。Queue[2]
請嘗試使用以下代碼:
Queue = []
Queue.append([])
Queue.append([])
Queue.append([])
Queue[1].append('okay')
print(Queue)

精慕HU
TA貢獻1845條經驗 獲得超8個贊
將 temp = [] 替換為 list()
Queue = [ ]
Queue.append(list()) # 12 - 8
Queue.append(list())
Queue.append(list())
Queue[1].append('okay')
print(Queue)
output: [[], ['okay'], []]
添加回答
舉報
0/150
提交
取消