Дубликат в списке сохраняет первый элемент - PullRequest
0 голосов
/ 16 апреля 2020

Я не могу понять, почему результат показывает 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)

Ответы [ 2 ]

0 голосов
/ 16 апреля 2020

U может использовать функцию 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']

0 голосов
/ 16 апреля 2020

Функция remove() просто удаляет первое найденное вхождение. У вас есть слово «красный» 3 раза в вашем списке. Таким образом, удаляется только первый, оставшиеся 2. Возможное решение:

for i in wordlist:
    while wordlist.count(i)>1:
    wordlist.remove(i)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...