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

l= [[]] * 38
l[25].append['QQ']


它将显示[['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'], [], [], [], [], [], [], [], [], [], [], [], []]


有关此问题的更多信息,请参见Changing an element in one list changes multiple lists

关于python - 将元素附加到python中数组的列表之一,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58370958/

10-13 05:13