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 是相同的
我想知道为什么我不能使用追加功能。
最佳答案
不要在列表上使用 *
运算符,除非您想将每个元素视为相同。其作用是为一个元素分配一个内存空间,并使用相同的空间复制所有元素。因此,对任何元素所做的任何更改都会反射(reflect)所有元素的更改。
这里唯一的选择是使用循环。
>>> 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/