Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中将元素追加到数组的一个列表中_Python_Python 3.x - Fatal编程技术网

在python中将元素追加到数组的一个列表中

在python中将元素追加到数组的一个列表中,python,python-3.x,Python,Python 3.x,python的版本是3.7.3 我想做一个列表数组,它们的长度都不相等。 我试过了 它将显示['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA'], ['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、

python的版本是3.7.3 我想做一个列表数组,它们的长度都不相等。 我试过了

它将显示['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA'], ['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']、['AA']

l=['']]*38也是一样的


我想知道为什么我不能使用append函数。

不要在列表上使用
*
运算符,除非您希望将每个元素视为相同的。它的作用是为一个元素分配一个内存空间,并用相同的空间复制所有元素。因此,对任何元素所做的任何更改都将反映所有元素的更改

这里唯一的选择是使用循环

>>> l = [[] for _ in range(38)]
>>> l[25].append('AA')
>>> l
[[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], ['AA'], [], [], [], [], [], [], [], [], [], [], [], []]

关于这个问题的更多信息

我几天前确实遇到了这个问题。二维或更多维度列表的
*
运算符有问题。我建议循环浏览外部列表,制作一个二维列表。这些问题可能会提供一个提示:,简短回答:因为列表是参考类型
>>> l = [[] for _ in range(38)]
>>> l[25].append('AA')
>>> l
[[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], ['AA'], [], [], [], [], [], [], [], [], [], [], [], []]