Stringhe di ricerca nell'elenco contenente lettere specifiche in ordine casuale
Domanda
Sto scrivendo un codice in Python 2.7 in cui ho definito un elenco di stringhe. Voglio quindi cercare elementi di questo elenco per una serie di lettere. Queste lettere devono essere in ordine casuale. cioè cerca l'elenco per ogni singola lettera dall'input. Sono stato in giro per Google ma non ho trovato una soluzione.
Ecco cosa ho ottenuto:
wordlist = ['mississippi','miss','lake','que']
letters = str(aqk)
for item in wordlist:
if item.find(letters) != -1:
print item
Questo è un esempio. Qui l'unico output dovrebbe essere "Lake" e "Que" poiché queste parole contengono "A", "Q" e "K". Come posso riscrivere il mio codice in modo che questo sia fatto?
Grazie in anticipo!
Alex
Soluzione
Sarebbe facile usare set()
:
wordlist = ['mississippi','miss','lake','que']
letters = set('aqk')
for word in wordlist:
if letters & set(word):
print word
Produzione:
lake
que
Nota: Il &
l'operatore fa un intersezione tra i due set.
Altri suggerimenti
for item in wordlist:
for character in letters:
if character in item:
print item
break
Ecco la tua soluzione:
for item in wordlist:
b = False
for c in letters:
b = b | (item.find(c) != -1)
if b:
print item
[word for word in wordlist if any(letter in word for letter in 'aqk')]
Utilizzo di set e sintassi per verificare.
wordlist = ['mississippi','miss','lake','que']
letters = set('aqk')
for word in wordlist:
if word in letters:
print word