Python 列表中的重复项保留第一个元素

Python 列表中的重复项保留第一个元素,python,list,Python,List,我不明白为什么结果显示2“红色”。结果是:[红色、粉色、红色、白色、蓝色] string ='red,red,white,white,pink,blue,red,white,blue' wordlist = string.split(',') for i in wordlist: if (wordlist.count(i) > 1): wordlist.remove(i) print(wordlist) 函数remove()只删除找到的第一个匹配项。“红色”一词在列表中

我不明白为什么结果显示2“红色”。结果是:[红色、粉色、红色、白色、蓝色]

string ='red,red,white,white,pink,blue,red,white,blue'
wordlist = string.split(',')
for i in wordlist:
   if (wordlist.count(i) > 1):
      wordlist.remove(i)
print(wordlist)
函数
remove()
只删除找到的第一个匹配项。“红色”一词在列表中出现了三次。所以只有第一个被移除,剩下的2个。 一种可能的解决办法是:

for i in wordlist:
    while wordlist.count(i)>1:
    wordlist.remove(i)
您可以使用
fromkeys()
函数删除重复列表

string ='red,red,white,white,pink,blue,red,white,blue'
wordlist = string.split(',')
wordlist = list(dict.fromkeys(wordlist))
print(wordlist)

输出:
['red'、'white'、'pink'、'blue']

您在迭代列表时正在修改列表。只需将其通过集合:
列表(集合(s.split(','))
但我不想使用集合函数这里到底有什么错误,请解释一下?当您使用第一个元素时,您会发现元素
红色
重复。所以你删除它。现在转到元素2。现在是白色的,因为列表现在开始了,你跳过了第二个红色。尝试添加
print(wordlist,i)
作为for循环的第一行,以查看发生了什么。要添加@MarkMeyer所说的内容,请在转到
blue
时,它将其删除,然后移动到下一个索引,该索引为
白色
,因为删除后整个列表移到1上,导致程序跳过最后一个
红色