不使用remove或fromkeys删除重复项;列表切片;蟒蛇

时间:2020-01-08 05:48:32

标签: python list duplicates

我正在尝试通过迭代和切片(没有.removefromkeys等)来删除列表中的重复项,并保持错误结果。

例如,现在我有一个列表['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']

有人知道这个的解释吗?为什么它似乎停留在此步骤中?

1 个答案:

答案 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']