python - 在 Python 列表中创建子列表

标签 python arrays

<分区>

我正在尝试弄清楚如何在 Python 中将子列表添加到列表中。例如,我之前使用的代码是:

pop = [[],[],[],[],[],[],[],[],[],[]]

但我想将用户输入添加到 pop 数组的长度,即。添加了多少数组。我查看了其他一些 stackoverflow 问题,其中一些建议如下:

popLen = 5
pop = [None]*popLen

但是当我尝试创建一个包含 5 个 None 元素的列表而不是一个空数组时。我试过:

pop = [[]]*popLen

子列表的正确方法是什么?

最佳答案

pop = [[]]*popLen 应该可以工作,但它可能不是您想要的,因为它创建了一个包含相同嵌套列表的列表 popLen 次,这意味着对其中一个列表元素的更改将出现在其他元素中:

>>> a = [[]] * 3
>>> a[0].append(42)
>>> a
[[42], [42], [42]]

更好的选择是

pop = [[] for _ in range(popLen)]  # use xrange() in Python 2.x

这消除了这个问题:

>>> a = [[] for _ in range(3)]
>>> a[0].append(42)
>>> a
[[42], [], []]

关于python - 在 Python 列表中创建子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18562284/

相关文章:

python - Matplotlib:具有透明颜色的填充等高线图

python - 具有指定范围的最近邻一维数据

PHP CSV 到关联数组

java - 从字符串中获取字符

c# - 接受 float[] 和 double[] 数组的方法

python - 将每小时数据重新采样为 6 小时

python - 为不同的系统配置定义动态环境路径变量

python - Python中数据的高效拆分

c++ - 声明没有大小的 C++ 数组

javascript - array_push 平面数组问题 - 需要能够向数组添加多个变量