为了账号安全,请及时绑定邮箱和手机立即绑定

Python - 字符串列表列表

Python - 字符串列表列表

交互式爱情 2023-03-22 16:35:05
所以,基本上我有一个队列(字符串列表列表)。现在,假设我想将“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([])应该用于用单独的空列表填充队列。


查看完整回答
反对 回复 2023-03-22
?
炎炎设计

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)


查看完整回答
反对 回复 2023-03-22
?
精慕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'], []]


查看完整回答
反对 回复 2023-03-22
  • 3 回答
  • 0 关注
  • 140 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信