Поиск строк в списке, содержащих определенные буквы в случайном порядке - PullRequest
3 голосов
/ 25 февраля 2012

Я пишу код в Python 2.7, в котором я определил список строк.Затем я хочу найти элементы этого списка для набора букв.Эти буквы должны быть в случайном порядке.т.е. поиск в списке для каждой буквы от ввода.Я гуглял, но не нашел решения.

Вот что я получил:

wordlist = ['mississippi','miss','lake','que']

letters = str(aqk)

for item in wordlist:
    if item.find(letters) != -1:
        print item

Это пример.Здесь единственный выход должен быть 'lake' и 'que', так как эти слова содержат 'a', 'q' и 'k'.Как я могу переписать свой код, чтобы это было сделано?

Заранее спасибо!

Алекс

Ответы [ 5 ]

12 голосов
/ 25 февраля 2012

Было бы легко использовать set():

wordlist = ['mississippi','miss','lake','que']

letters = set('aqk')

for word in wordlist:
    if letters & set(word):
        print word

Выход:

lake
que

Примечание: Оператор & делает пересечение между двумя наборами.

1 голос
/ 25 февраля 2012

Вот ваше решение:

for item in wordlist:
  b = False
  for c in letters:
    b = b | (item.find(c) != -1)
  if b:
    print item
1 голос
/ 25 февраля 2012
for item in wordlist:
    for character in letters:
        if character in item:
            print item
            break
0 голосов
/ 25 февраля 2012

Использование множеств и синтаксиса in для проверки.

wordlist = ['mississippi','miss','lake','que']

letters = set('aqk')

for word in wordlist:
   if word in letters:
       print word
0 голосов
/ 25 февраля 2012
[word for word in wordlist if any(letter in word for letter in 'aqk')]
...