Python Controlla se la lista contiene una stringa

Hemank Mehtani 12 luglio 2021
  1. Usa il cicli for per controllare una stringa specifica in un elenco Python
  2. Usa la comprensione della lista per controllare una stringa specifica in un elenco Python
  3. Usa la funzione filter() per ottenere una stringa specifica in un elenco Python
Python Controlla se la lista contiene una stringa

Le stringhe sono una sequenza di caratteri. Proprio come le stringhe memorizzano i caratteri in posizioni specifiche, possiamo utilizzare gli elenchi per archiviare una raccolta di stringhe.

In questo tutorial, otterremo una stringa con valori specifici in un elenco Python.

Usa il cicli for per controllare una stringa specifica in un elenco Python

Il for è usato per iterare su una sequenza in Python.

La sua implementazione per ottenere una stringa contenente valori specifici è mostrata nell’esempio seguente.

py_list = ["a-1", "b-2", "c-3", "a-4"]
new_list = []
for x in py_list:
    if "a" in x:
        new_list.append(x)
print(new_list)

Produzione:

['a-1','a-4']

Nel codice precedente, l’istruzione if viene utilizzata all’interno del cicli for per cercare stringhe contenenti a nella lista py_list . Viene creato un altro elenco denominato new_list per memorizzare quelle stringhe specifiche.

Usa la comprensione della lista per controllare una stringa specifica in un elenco Python

“List Comprehension” è un modo per creare nuovi elenchi basati sull’elenco esistente. Offre una sintassi più breve essendo più compatta e veloce rispetto alle altre funzioni e cicli utilizzati per creare un elenco.

Per esempio,

py_list = ["a-1", "b-2", "c-3", "a-4"]
r = [s for s in py_list if "a" in s]
print(r)

Produzione:

['a-1', 'a-4']

Nel codice sopra, la comprensione della lista viene utilizzata per cercare stringhe con a nella lista py_list.

Si noti che scrivere lo stesso codice utilizzando altre funzioni o cicli avrebbe richiesto più tempo, poiché è necessario più codice per la loro implementazione, ma la comprensione delle liste risolve il problema.

Possiamo anche usare la comprensione delle liste per scoprire stringhe contenenti più valori specifici, cioè possiamo trovare stringhe contenenti a e b in py_list combinando le due comprensioni.

Per esempio,

py_list = ["a-1", "b-2", "c-3", "a-4", "b-8"]
q = ["a", "b"]
r = [s for s in py_list if any(xs in s for xs in q)]
print(r)

Produzione:

['a-1', 'b-2', 'a-4','b-8']

Usa la funzione filter() per ottenere una stringa specifica in un elenco Python

La funzione filter() filtra l’iterabile dato con l’aiuto di una funzione che controlla se ogni elemento soddisfa o meno una condizione.

Restituisce un iteratore che applica il controllo per ciascuno degli elementi nell’iterabile.

Per esempio,

py_lst = ["a-1", "b-2", "c-3", "a-4"]
filter(lambda x: "a" in x, py_lst)
print(filter(lambda x: "a" in x, py_lst))

Produzione:

<filter object at 0x7fd36c1905e0>

Nota che l’output sopra è un oggetto di tipo filter-iterator poiché la funzione filter() restituisce un iteratore invece di un elenco.

Possiamo usare la funzione list() come mostrato nel codice qui sotto per ottenere una lista.

list(filter(lambda x: "a" in x, py_lst))

Produzione:

['a-1','a-4']

Nel codice sopra, abbiamo usato filter() per trovare una stringa con valori specifici nella lista py_list.

Articolo correlato - Python String

Articolo correlato - Python List