所以,基本上我有一个队列(字符串列表列表)。现在,假设我想将“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
提交
取消