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

È stato utile?

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top