在嵌套循环内将列表附加到新列表会产生意想不到的结果[关闭]

问题描述 投票:0回答:0

我试图以可重现的方式写下我的错误问题,以便平台能够被看到和指导。我看不出我的逻辑差距为什么会发生这个错误。 我有一个内部循环,它在抓取时带来新元素并将其附加到名为

list_inner
的列表中。然后在名为
list_outer
的外循环列表中附加该新列表。但是最终结果给出了正确的成员数量,但是列表 list_outer 的元素是相同的,列表的最后一个列表元素
list_inner
。这怎么会发生?如果它将是一个元素列表,我会理解。

import random
list_inner=[]
list_outer=[]
for i in range(5):
    for r in range(random.randint(1,10)):
        list_inner.append(r)
        print(r)
    list_outer.append(list_inner)
    print(list_outer)
print(list_outer)

我分享两个结果,让我知道什么是真实的,什么是我所期待的。 结果实际

0
1
2
3
[[0, 1, 2, 3]]
0
1
2
3
4
[[0, 1, 2, 3, 0, 1, 2, 3, 4], [0, 1, 2, 3, 0, 1, 2, 3, 4]]

但我的目标是结果

[[0,1,2,3],[0,1,2,3,4]]
python nested-loops nested-lists
© www.soinside.com 2019 - 2024. All rights reserved.