List 在列表的第i个列表中追加值

List 在列表的第i个列表中追加值,list,python-2.7,append,List,Python 2.7,Append,b是一个列表,它还包含10个列表,列表的每个索引都包含列表本身。现在,当我尝试在第I个列表ob中附加一些值时,它会在所有列表中附加它。我不明白为什么?救命啊 代码: a=[3,5,1,7,2,22,9,8,4,11] b=[[]]*10 d=10 for i in range(len(a)): b[i].append(a[i]) print b 输出: a=[3,5,1,7,2,22,9,8,4,11] b=[[]]*10 d=10 for i in rang

b是一个列表,它还包含10个列表,列表的每个索引都包含列表本身。现在,当我尝试在第I个列表ob中附加一些值时,它会在所有列表中附加它。我不明白为什么?救命啊

代码:

a=[3,5,1,7,2,22,9,8,4,11]
b=[[]]*10
d=10
for i in range(len(a)):         
    b[i].append(a[i])
    print b
输出:

a=[3,5,1,7,2,22,9,8,4,11]
b=[[]]*10
d=10
for i in range(len(a)):         
    b[i].append(a[i])
    print b
[3]、[3]、[3]、[3]、[3]、[3]、[3]、[3]、[3]、[3]] [[3, 5], [3, 5], [3, 5], [3, 5], [3, 5], [3, 5], [3, 5], [3, 5], [3, 5], [3, 5]] [[3, 5, 1], [3, 5, 1], [3, 5, 1], [3, 5, 1], [3, 5, 1], [3, 5, 1], [3, 5, 1], [3, 5, 1], [3, 5, 1], [3, 5, 1]] [[3, 5, 1, 7], [3, 5, 1, 7], [3, 5, 1, 7], [3, 5, 1, 7], [3, 5, 1, 7], [3, 5, 1, 7], [3, 5, 1, 7], [3, 5, 1, 7], [3, 5, 1, 7], [3, 5, 1, 7]] [[3, 5, 1, 7, 2], [3, 5, 1, 7, 2], [3, 5, 1, 7, 2], [3, 5, 1, 7, 2], [3, 5, 1, 7, 2], [3, 5, 1, 7, 2], [3, 5, 1, 7, 2], [3, 5, 1, 7, 2], [3, 5, 1, 7, 2], [3, 5, 1, 7, 2]] [[3, 5, 1, 7, 2, 22], [3, 5, 1, 7, 2, 22], [3, 5, 1, 7, 2, 22], [3, 5, 1, 7, 2, 22], [3, 5, 1, 7, 2, 22], [3, 5, 1, 7, 2, 22], [3, 5, 1, 7, 2, 22], [3, 5, 1, 7, 2, 22], [3, 5, 1, 7, 2, 22], [3, 5, 1, 7, 2, 22]] [[3, 5, 1, 7, 2, 22, 9], [3, 5, 1, 7, 2, 22, 9], [3, 5, 1, 7, 2, 22, 9], [3, 5, 1, 7, 2, 22, 9], [3, 5, 1, 7, 2, 22, 9], [3, 5, 1, 7, 2, 22, 9], [3, 5, 1, 7, 2, 22, 9], [3, 5, 1, 7, 2, 22, 9], [3, 5, 1, 7, 2, 22, 9], [3, 5, 1, 7, 2, 22, 9]] [[3, 5, 1, 7, 2, 22, 9, 8], [3, 5, 1, 7, 2, 22, 9, 8], [3, 5, 1, 7, 2, 22, 9, 8], [3, 5, 1, 7, 2, 22, 9, 8], [3, 5, 1, 7, 2, 22, 9, 8], [3, 5, 1, 7, 2, 22, 9, 8], [3, 5, 1, 7, 2, 22, 9, 8], [3, 5, 1, 7, 2, 22, 9, 8], [3, 5, 1, 7, 2, 22, 9, 8], [3, 5, 1, 7, 2, 22, 9, 8]] [[3, 5, 1, 7, 2, 22, 9, 8, 4], [3, 5, 1, 7, 2, 22, 9, 8, 4], [3, 5, 1, 7, 2, 22, 9, 8, 4], [3, 5, 1, 7, 2, 22, 9, 8, 4], [3, 5, 1, 7, 2, 22, 9, 8, 4], [3, 5, 1, 7, 2, 22, 9, 8, 4], [3, 5, 1, 7, 2, 22, 9, 8, 4], [3, 5, 1, 7, 2, 22, 9, 8, 4], [3, 5, 1, 7, 2, 22, 9, 8, 4], [3, 5, 1, 7, 2, 22, 9, 8, 4]] [3、5、5、5、5、1、1、7、7、2、2、2、5、1、1、7、2、22、9、8、8、4、11、[3、5、5、1、1、1、1、1、7、5、5、5、5、5、5、5、5、5、5、5、5、5、5、5、5、5、5、5、5、5、1、1、1、1、1、7、7、7、7、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、22、22、22、22、22、22、22、22、22、22、22、22、9、9、9、9、9、9、9、9、9、9、8、8、8、8、8、8、8、8、8、8、8、1、1、1、8、8、1、1、1、1、1[3,5,1,7,2,22,9,8,4,11]]


不要像本文建议的那样将其初始化为可变对象:

相反,请将列表改写为:

>>> b=[[] for _ in xrange(10)]
>>> b
[[], [], [], [], [], [], [], [], [], []]
>>> b[0].append(0)
>>> b
[[0], [], [], [], [], [], [], [], [], []]
对于您给出的代码

a=[3,5,1,7,2,22,9,8,4,11]
b=[[] for _ in xrange(10)]
d=10;
for i in range(len(a)):
    b[i].append(a[i])
    print b
输出:

[[3], [], [], [], [], [], [], [], [], []]
[[3], [5], [], [], [], [], [], [], [], []]
[[3], [5], [1], [], [], [], [], [], [], []]
[[3], [5], [1], [7], [], [], [], [], [], []]
[[3], [5], [1], [7], [2], [], [], [], [], []]
[[3], [5], [1], [7], [2], [22], [], [], [], []]
[[3], [5], [1], [7], [2], [22], [9], [], [], []]
[[3], [5], [1], [7], [2], [22], [9], [8], [], []]
[[3], [5], [1], [7], [2], [22], [9], [8], [4], []]
[[3], [5], [1], [7], [2], [22], [9], [8], [4], [11]]
这里已经回答了: