python - Python append 函数没有按预期工作
问题描述
>>> a = [1,2,3]
>>> b = []
>>> b.append(a)
>>> print(b)
[[1, 2, 3]]
>>> num = a.pop(0)
>>> a.append(num)
>>> print(a)
[2, 3, 1]
>>> b.append(a)
>>> print(b)
[[2, 3, 1], [2, 3, 1]]
>>>
为什么会发生这种情况以及如何解决?我需要这样的清单
[[1, 2, 3], [2, 3, 1]]
谢谢你。
编辑:
另外,为什么这有效?
>>> a = []
>>> b = []
>>> a = [1,2,3]
>>> b.append(a)
>>> a = [1,2,3,4]
>>> b.append(a)
>>> print(b)
[[1, 2, 3], [1, 2, 3, 4]]
>>>
'''
解决方案
a
至少第一次附加您的列表副本。否则,您两次都附加了相同的列表。
b.append(a[:])
推荐阅读
- python - 如何使用 API、JSON 和 Python 修复错误“类型咬的对象不是 JSON 可序列化”
- javascript - 为什么这个 JavaScript/jQuery 功能有效 - 未声明的变量
- ios - UIPickerView 未正确显示计算值
- javascript - 我可以使用 JavaScript ES6 Proxy 来观察对象的创建时间吗
- reactjs - componentWillMount 内部方法调用的 Jest 测试失败
- c - C从多个命名管道写入/读取
- excel - 使用 VBA 返回具有匹配值的开始和结束行号
- javascript - 如何在不同的日子使用不同的数组?
- netflow - Netflow V9 字段 ID 范围
- node.js - Heroku node.js 应用程序在部署后立即崩溃 - 内存不足