1

我正在迭代一个列表并尝试从其项目中创建子列表。每次我附加到一个变量时,该值都会添加到我定义的所有其他变量中。我已经大量剥离代码来说明。

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'])

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

4

2 回答 2

4

问题是线路

list1 = list2 = []

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

list1 = []
list2 = []
于 2013-06-15T02:33:24.453 回答
3
list1 = list2 = []

您设置list1与 完全相同的列表list2。因此,它们的含义基本相同

要解决此问题,请尝试以下操作:

list1, list2 = [], []
于 2013-06-15T02:33:12.610 回答