通过保留第一个元素,从python列表中删除以下重复元素

时间:2019-05-13 16:28:40

标签: python python-3.x

我对自己的代码有疑问,因为我想知道如何通过每次都保留第一个元素来删除代码中的重复元素。

例如,胜过许多单词:

mylist = [a,a,a,b,c,c,a,d,e,e,e]

我想得到:

my_new_list = [a,b,c,a,d,e]
my_new_list_2 = [a,3,b,1,c,2,a,1,d,1,e,3]

该过程如下:

一旦我有一个字母或下一个相同的字母,我就一次写这个字母,那么下一个字母就一样。 然后,我需要删除连续的重复项,并将重复项的数量添加到新列表中。

我的代码是:

mylist = [a,a,a,b,c,c,a,d,e,e,e]
result = list(dict.fromkeys(mylist))
==> [a,b,c,d,e]

这不是预期的结果。

1 个答案:

答案 0 :(得分:3)

您可以使用itertools.groupby对相等的连续元素进行分组,并在每个组中保留key

from itertools import groupby
mylist = ['a','a','a','b','c','c','a','d','e','e','e']

[k for k,_ in groupby(mylist)]
# ['a', 'b', 'c', 'a', 'd', 'e']