Python 3.x 如何删除Python列表中的重复项
我刚开始学习Python,我想学习如何删除列表中输入的重复元音(我也为我糟糕的英语技能感到抱歉) 这是我的代码:Python 3.x 如何删除Python列表中的重复项,python-3.x,list,Python 3.x,List,我刚开始学习Python,我想学习如何删除列表中输入的重复元音(我也为我糟糕的英语技能感到抱歉) 这是我的代码: vowels = ['a', 'e', 'i', 'o', 'u'] word = input("Provide a word to search for vowel >> ") found = [] for letter in word: if letter in vowels: found.append(letter)
vowels = ['a', 'e', 'i', 'o', 'u']
word = input("Provide a word to search for vowel >> ")
found = []
for letter in word:
if letter in vowels:
found.append(letter)
for letter in found:
if found.count(letter) > 1:
found.remove(letter)
print(found)
如果我输入,比如说,“aaaaa”,输出是:
['a', 'a']
仅应打印以下内容:
['a']
如何修复此代码
另外,这是我在stackoverflow上的第一篇文章,我非常感谢任何试图联系我的人。非常感谢你 您试图在迭代列表时修改列表。对此有详细的解释
作为一个解决方案,考虑使用另一个列表来寻找这样的唯一元素:
vowels = ['a', 'e', 'i', 'o', 'u']
word = input("Provide a word to search for vowel >> ")
found = []
found_unique = []
for letter in word:
if letter in vowels:
found.append(letter)
[found_unique.append(x) for x in found if x not in found_unique]
print(found_unique)
但最简单的方法是使用python3的
set()
,因为它的元素在定义上是唯一的。可以使用一个集合,也可以在第一次找到字母后将其从查找的内容列表中删除:
vowels = ['a', 'e', 'i', 'o', 'u']
word = input("Provide a word to search for vowel >> ")
found = []
for letter in word:
if letter in vowels:
found.append(letter)
vowels.remove(letter) # no longer look for this specific vowel
if not vowels:
break # no more vowels to look for, quick exit
print(found)
输出:
Provide a word to search for vowel >> aaaaa
['a']