呼神护卫 发表于 2020-4-28 20:19:42

新人疑惑,请大佬帮忙解决一些关于列表的问题

list1 = [(1,2),(2,3),(1,3)]

list2 = list3 = []

for each in list1:
    if each == 1:
      list2.append(each)
    if each == 2:
      list3.append(each)

print(list2)
print(list3)
这么一串代码,我本来预期结果是list2 = [(1,2),(1,3)],list3 = [(2,3)]
但结果是list2 = list3 = list1,请问是为什么呢,中间那个if筛选机制出问题了吗,如果我想要达到我的目的,应该如何修改。
萌新发言,请大佬轻喷。

BngThea 发表于 2020-4-28 20:25:18

不是if的问题,是list2和list3初始化的问题
你直接让两个列表初始化为同一个[],那么它们其实是一个列表
你要这样写
list2,list3=[],[]

呼神护卫 发表于 2020-4-28 20:32:29

BngThea 发表于 2020-4-28 20:25
不是if的问题,是list2和list3初始化的问题
你直接让两个列表初始化为同一个[],那么它们其实是一个列表
...

谢谢解答,已设置为最佳答案!
页: [1]
查看完整版本: 新人疑惑,请大佬帮忙解决一些关于列表的问题