Понимание списка Python: список подпунктов без дубликатов

Я пытаюсь напечатать все буквы во всех словах в списке без дубликатов.

wordlist = ['cat','dog','rabbit'] letterlist = [] [[letterlist.append(x) for x in y] for y in wordlist] 

Приведенный выше код генерирует ['c', 'a', 't', 'd', 'o', 'g', 'r', 'a', 'b', 'b', 'i', 't'] , в то время как я ищу ['c', 'a', 't', 'd', 'o', 'g', 'r', 'b', 'i'] .

Как изменить понимание списка, чтобы удалить дубликаты?

6 Solutions collect form web for “Понимание списка Python: список подпунктов без дубликатов”

Если вы хотите отредактировать собственный код:

 [[letterlist.append(x) for x in y if x not in letterlist] for y in wordlist] 

или

 list(set([[letterlist.append(x) for x in y if x not in letterlist] for y in wordlist])) 

еще:

 list(set(''.join(wordlist))) 

Вы заботитесь о поддержании порядка?

 >>> wordlist = ['cat','dog','rabbit'] >>> set(''.join(wordlist)) {'o', 'i', 'g', 'd', 'c', 'b', 'a', 't', 'r'} 

Два подхода:

Порядок сохранения:

 >>> from itertools import chain >>> from collections import OrderedDict >>> list(OrderedDict.fromkeys(chain.from_iterable(wordlist))) ['c', 'a', 't', 'd', 'o', 'g', 'r', 'b', 'i'] 

Если вы не суетитесь о порядке:

 >>> list(set().union(*wordlist)) ['a', 'c', 'b', 'd', 'g', 'i', 'o', 'r', 't'] 

Ни один из них не использует list-comps для побочных эффектов, например:

 [[letterlist.append(x) for x in y] for y in wordlist] 

letterlist ли список списков Nones исключительно для изменения letterlist

Хотя все остальные ответы не поддерживают порядок, этот код делает:

 from collections import OrderedDict letterlist = list(OrderedDict.fromkeys(letterlist)) 

См. Также статью о нескольких путях с бенчмарками: Самый быстрый способ унифицировать список в Python .

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

 >>> letterlist = list({x for y in wordlist for x in y}) >>> letterlist ['a', 'c', 'b', 'd', 'g', 'i', 'o', 'r', 't'] >>> 
 wordlist = ['cat','dog','rabbit'] s = set() [[s.add(x) for x in y] for y in wordlist] 
Interesting Posts

python win32api блокирует маршруты бутылок

Соединение Python Twisted и базы данных

Использование pandas для выбора строк с использованием двух разных столбцов из dataframe?

Непосредственно используйте библиотеку Intel mkl на Scipy разреженной матрице для вычисления точки AT с меньшим объемом памяти

Почему подача stdin на subprocess.Popen вызывает то, что записывается в stdout для изменения?

TypeError: __init __ () отсутствует 2 необходимых позиционных аргумента: 'client_socket' и 'statusMessage'

Получение функции Python для объекта кода

Кодек UCS-2 не может кодировать символы в позиции 1050-1050

scipy с py2exe

Вызывать и получать вывод из скрипта Python в Java?

Theano: измените `base_compiledir`, чтобы сохранить скомпилированные файлы в другом каталоге

Почему моя функция, использующая время Python ограничена во входной величине magnatude?

Как обновить значения в определенной строке в Python DataFrame?

Стоимость масштабирования Rails и стоимость масштабирования PHP и Python

Как использовать проверку креста k-fold в scikit с наивным классификатором заливов и NLTK

Python - лучший язык программирования в мире.