Python追加为每个变量添加一个项目

时间:2013-06-15 02:30:08

标签: python append

我正在迭代列表并尝试从其项目创建子列表。每次我附加到变量时,该值都会添加到我定义的每个其他变量中。我已经大量删除了代码以进行说明。

item = 'things.separated.by.periods'.split('.')
list1 = list2 = []

i = item.pop(0)
print i
list1.append(i)
i = item.pop(0)
print i
list2.append(i)

print(item, list1, list2)

返回:

things
separated
(['by', 'periods'], ['things', 'separated'], ['things', 'separated'])

我的期望:

things
separated
(['by', 'periods'], ['things'], ['separated'])

我认为可能会回答here,但我不确定如何将此修复应用于我的情况。提前谢谢!

2 个答案:

答案 0 :(得分:4)

问题在于

list1 = list2 = []

这使得list1list2引用完全相同的列表,因此如果您将项目附加到其中,您也会将其附加到另一个项目。将其更改为

list1 = []
list2 = []

答案 1 :(得分:3)

list1 = list2 = []

您将list1设为list2完全相同的列表。因此,它们基本上意味着相同的事物。

要解决此问题,请尝试以下方法:

list1, list2 = [], []
相关问题