我正在尝试通过迭代和切片(没有.remove
或fromkeys
等)来删除列表中的重复项,并保持错误结果。
例如,现在我有一个列表['a', 'n', 'a', 'a', 'n']
,通过运行以下代码,我不断得到['a', 'a', 'n']
for i in range(1, len(lst)-1):
if lst[i] == lst[0]:
lst = lst[1:]
return lst
我认为这是原因:当列表中有三个元素时,范围变为range(1, 2)
,其中不包含任何内容。但是即使我将其更改为
for i in range(len(lst)-1)
在我看来这没有任何意义,应该删除仅保留最后一个['n']
的所有元素,但仍返回['a', 'a', 'n']
有人知道这个的解释吗?为什么它似乎停留在此步骤中?
答案 0 :(得分:3)
您可以将新元素放入新的list
中,例如
>>> x
['a', 'n', 'a', 'a', 'n']
>>> y = []
>>>
>>> for e in x:
... if e not in y:
... y.append(e)
...
>>> y
['a', 'n']
或者只是
>>> list(set(x))
['n', 'a']