在Python列表中删除相邻的重复项

时间:2018-11-22 15:15:42

标签: python python-3.x list element

我将字符串a转换为列表,并希望循环创建‍ tabb = ['a', 'b', 'c', 'a']

a = aaabbbbcccaaa

taba = list(a)
tabb = []

for i in taba:
    for j in range(len(tabb)):
        if not i[j] == i[j-1]:
            tabb.append(i[j])

print (tabb)

但显然我的解决方案gives tabb = []

您是否有更好更好的主意使它起作用?

1 个答案:

答案 0 :(得分:1)

来自groupby

itertools是您的盟友:

from itertools import groupby

a = 'aaabbbbcccaaa'

res = [x for x, _ in groupby(a)]
print(res)  # -> ['a', 'b', 'c', 'a']

没有任何库(您要尝试的库)的解决方案是:

res = [a[0]]

for i, c in enumerate(a[1:]):
    if c != a[i]:
        res.append(c)

当然具有相同的结果。