Python - 字符串列表列表

所以,基本上我有一个队列(字符串列表列表)。现在,假设我想将“okay”附加到索引 1 处的列表,为什么它会附加到 Queue 中的所有列表?如何仅在队列内将值附加到特定列表?


Queue = []

temp = []

Queue.append(temp) # 12 - 8

Queue.append(temp)

Queue.append(temp)

Queue[1].append('okay')

print(Queue)

[['okay'], ['okay'], ['okay']]


交互式爱情
浏览 141回答 3
3回答

隔江千里

您Queue是完全相同列表的列表Queue.append(temp)不会创建新列表并将其添加到Queue. 因此,当您更改 的一个元素时Queue,实际上是在更改所有元素。Queue.append([])应该用于用单独的空列表填充队列。

炎炎设计

因为 Queue 中的三个项目不是三个不同的空列表:它们都是temp. 因此temp、Queue[0]和都是同一个对象,修改其中一个会导致修改所有对象Queue[1]。Queue[2]请尝试使用以下代码:Queue = []Queue.append([])Queue.append([])Queue.append([])Queue[1].append('okay')print(Queue)

精慕HU

将 temp = [] 替换为 list()Queue = [ ]Queue.append(list()) # 12 - 8Queue.append(list())Queue.append(list())Queue[1].append('okay')print(Queue)output: [[], ['okay'], []]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python