Python 列表中的重复项保留第一个元素
我不明白为什么结果显示2“红色”。结果是:[红色、粉色、红色、白色、蓝色]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()只删除找到的第一个匹配项。“红色”一词在列表中
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上,导致程序跳过最后一个红色
。