python - 有人可以解释我的 Python 数组发生了什么吗?
问题描述
我正在初始化这两个列表,并尝试以两种不同的方式替换每个列表中的前 3 个项目。
b = c = [2, 4, 6, 8, 10, 12]
print(b)
b[0] = 3; b[1] = 6; b[2] = 9
print(b)
c[0:2] = [3,6,9]
print(c)
但是当我运行代码时,我得到了下面奇怪的输出。我得到了我对“b”的期望,但完全符合“c”的期望。有人可以向我解释为什么会这样吗?
b = [2, 4, 6, 8, 10, 12]
c = [2, 4, 6, 8, 10, 12]
new b = [3, 6, 9, 8, 10, 12]
new c = [3, 6, 9, 9, 8, 10, 12]
解决方案
c[0:2]
表示前两个元素,所以基本上你要替换[3, 6]
为[3, 6, 9]
. 你应该使用
c[0:3] = [3, 6, 9]
c = [3, 6, 9, 8, 10, 12]
推荐阅读
- mongodb - MongoDB - 有条件地执行命令
- php - 分页搜索在 laravel 中不起作用
- php - 在 Prestashop Feeder 中将数据添加到文件
- django - how I can properly get the aggregation of these fields
- c# - Cybersource 安全验收托管结账失败并需要账单信息
- ios - 在 swiftUI 中的视图数组之间切换
- scala - Scala中的sbt libraryDependency和import语句有什么关系?
- python - 在 pycharm 调试器中调试异步程序
- javascript - highcharts mapbubble 显示 3 次
- doxygen - 如何修改 Doxygen HTML 输出,使其可以使用 CSP 沙箱标头托管?