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/