python - 将列表附加到另一个列表时的奇怪输出
问题描述
我只是在练习python代码,在将一个列表附加到另一个列表时发现了一个奇怪的现象。请看一下代码:
inside = []
outside = []
for i in range(10):
inside.append(i)
outside.append(inside)
print(outside)
它输出:
[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]
但不应该输出是这样的:
[[0],[0, 1],[0, 1, 2],[0, 1, 2, 3],[0, 1, 2, 3, 4],[0, 1, 2, 3, 4, 5],[0, 1, 2, 3, 4, 5, 6],[0, 1, 2, 3, 4, 5, 6, 7],[0, 1, 2, 3, 4, 5, 6, 7, 8],[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]
我很困惑我在哪里弄错了。请帮忙。
解决方案
这是因为您告诉 Python 将名称为“inside”的数组附加到外部。这意味着,外面的数组看起来像这样:
outside = [inside, inside, inside, inside, inside, inside, inside, inside, inside, inside]
发生这种情况是因为 Python 将一个所谓的指针附加到外部数组,而不是数组本身的实际内容。
推荐阅读
- python - 在 DRF 序列化器字段中安全地允许 M2M 字段为空所需的最低选项是什么?
- javascript - 当我的 iframe 加载时,两个滚动即将到来,如果我将 iframe 的滚动设置为 no,它将不会显示网站的完整内容
- bash - 循环通过逗号分隔的txt文件并用作变量
- node.js - 在 nodejs 中使用 npm exceljs 并生成 excel 时,它没有在 Microsoft excel 2007 中打开
- laravel - Laravel/Nginx - 自定义 Header 请求
- c# - C# Unity3D 微积分
- jenkins - 仅为詹金斯文件中的特定代码生成报告
- python-3.x - 没有 Tensorflow Serving 的 GCP 中的 TensorFlow 模型部署
- python - 想要在条件下加入两个数据框的最后一行
- java - 加载类时未调用静态块