列表不包含其值-python

列表不包含其值-python,python,list,Python,List,我对Python中的列表有问题。根据下面用Pycharm编写的代码并使用pypy解释器,当我清除第一个列表时,第二个列表将丢失其给定值 def test(): first_list = [] second_list = [] for i in range(10): first_list.append(i) if len(first_list)>1: second_list.append(first_list)

我对Python中的列表有问题。根据下面用Pycharm编写的代码并使用pypy解释器,当我清除第一个列表时,第二个列表将丢失其给定值

def test():

    first_list = []
    second_list = []

    for i in range(10):
        first_list.append(i)

    if len(first_list)>1:
        second_list.append(first_list)
        first_list.clear()

    for j in range(100,105):
        first_list.append(j)

    if len(first_list)>1:
        second_list.append(first_list)
        first_list.clear()

    print(second_list)


#output:
[[], []]

复制与参考问题

first_list=[]
第二个列表=[]
对于范围(10)内的i:
第一个列表。附加(i)
如果len(第一个列表)>1:
第二个列表。追加(第一个列表[:])
第一个列表。清除()
对于范围(100105)内的j:
第一个列表。附加(j)
如果len(第一个列表)>1:
第二个列表。追加(第一个列表[:])
第一个列表。清除()
打印(第二张列表)

这是否回答了您的问题?虽然我知道引用和值之间的区别,但在清除第一个列表时,我不知道如何在第二个列表中保留旧的数字。@Reezaro如果您一直在附加同一个列表,
second\u list.append(first\u list)
,那么当然,当您清除附加的列表时,外部列表包含多个对同一个列表的引用(空)利斯特韦尔注意到。谢谢您