Как отфильтровать слова в списке, которые не повторяются в Python? - PullRequest
0 голосов
/ 22 февраля 2019

Я хочу удалить повторяющиеся элементы из списка и сохранить порядок исходного списка, как в примере, который у меня есть:

['hangman', 'song', 'most', 'broadly', 'song', 'hangman', 'work', 'music', 'work', 'broadly', 'typically'] 

, и я хочу это:

['hangman', 'song', 'most', 'broadly', 'work', 'music', 'typically']

Как я могу это сделать:

Ответы [ 4 ]

0 голосов
/ 22 февраля 2019

Чтобы удалить дубликаты и сохранить порядок исходного списка в Python 3.7, вы можете использовать dict.fromkeys():

l = ['hangman', 'song', 'most', 'broadly', 'song', 'hangman', 'work', 'music', 'work', 'broadly', 'typically'] 

list(dict.fromkeys(l))
# ['hangman', 'song', 'most', 'broadly', 'work', 'music', 'typically']

В противном случае используйте OrderedDict.

0 голосов
/ 22 февраля 2019

Вы можете сделать это, используя Set .Документы по реализации набора Python здесь (при условии, что вы используете python3) введите описание ссылки здесь .Используя первый список в качестве входных данных, вы можете добавить все элементы в набор, и операция добавления будет игнорировать дубликаты.Однако при чтении из набора порядок не гарантируется.

пример:

>>> mylist = ["a", "b", "c", "a"]
>>> myset = set(mylist)
>>> myset
set(['a', 'c', 'b'])
0 голосов
/ 22 февраля 2019

это сохранит порядок вашего old_list в случае необходимости.

old_list = ['hangman', 'song', 'most', 'broadly', 'song', 'hangman', 'work', 'music', 'work', 'broadly', 'typically']

new_list = []

for n in old_list:
    if n not in new_list:
        new_list.append(n)

print(new_list)
0 голосов
/ 22 февраля 2019

Вы можете использовать set для этого, набор не будет принимать один элемент более одного раза:

old_list = ['hangman', 'song', 'most', 'broadly', 'song', 'hangman', 'work', 'music', 'work', 'broadly', 'typically'] 

new_list = list(set(old_list))

new_list будет:

['hangman', 'song', 'most', 'broadly', 'work', 'music', 'typically']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...