Python:字母数组排序

Python:字母数组排序,python,arrays,loops,sorting,Python,Arrays,Loops,Sorting,我在尝试一个关于正则表达式的示例练习。查找字母表中的所有字母。对数组进行排序,最后消除所有重复 >>> letterRegex = re.compile(r'[a-z]') >>> alphabets = letterRegex.findall("The quick brown fox jumped over the lazy dog") >>> alphabets.sort() >>> alphabets ['a', 'b

我在尝试一个关于正则表达式的示例练习。查找字母表中的所有字母。对数组进行排序,最后消除所有重复

>>> letterRegex = re.compile(r'[a-z]')
>>> alphabets = letterRegex.findall("The quick brown fox jumped over the lazy dog")
>>> alphabets.sort()
>>> alphabets
['a', 'b', 'c', 'd', 'd', 'e', 'e', 'e', 'e', 'f', 'g', 'h', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'o', 'o', 'o', 'p', 'q', 'r', 'r', 't', 'u', 'u', 'v', 'w', 'x', 'y', 'z']
完成排序后,我尝试创建一个循环,以消除数组中的所有重复。 e、 g[…'e','e'…]

所以我做了这个

>>> i, j = -1,0
>>> for items in range(len(alphabets)):
        if alphabets[i+1] == alphabets[j+1]:
            alphabets.remove(alphabets[j])

然而,它没有起作用。如何删除重复项?

以下是一种更简单的删除重复项的方法:

import itertools

L = ['a', 'b', 'c', 'd', 'd', 'e', 'e', 'e', 'e', 'f', 'g', 'h', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'o', 'o', 'o', 'p', 'q', 'r', 'r', 't', 'u', 'u', 'v', 'w', 'x', 'y', 'z']

answer = []
for k,_group in itertools.groupby(L):
    answer.append(k)
或者更简单一些:

answer = [k for k,_g in itertools.groupby(L)]
两者都产生了这样的结果:

In [42]: print(answer)
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 't', 'u', 'v', 'w', 'x', 'y', 'z']

您发布的代码不会产生您显示的结果。请使用您正在使用的确切代码和结果更新您的帖子,以消除重复的字母,您可以执行
list(set(alphabets)).sort()
可能重复的操作我意外关闭了外壳,现在我不确定是什么代码给出了这些结果。但是我会编辑这个问题,谢谢。