Hvordan filtrere en liste over strenger i Python

Hvordan filtrere en liste over strenger i Python
Python bruker listedatatype for å lagre flere data i en sekvensiell indeks. Det fungerer som et numerisk utvalg av andre programmeringsspråk. filter () -metoden er en veldig nyttig metode for python. En eller flere dataverdier kan filtreres fra hvilken som helst streng eller liste eller ordbok i Python ved å bruke filter () -metode. Det filtrerer data basert på en bestemt tilstand. Den lagrer data når tilstanden returnerer sanne og kaster data når de returnerer falske. Hvordan strengdataene i en liste kan filtreres i Python vises i denne artikkelen ved å bruke forskjellige eksempler. Du må bruke Python 3+ for å teste eksemplene på denne artikkelen.

Filtrer en liste over streng ved hjelp av en annen liste

Dette eksemplet viser hvordan dataene i en liste over streng kan filtreres uten å bruke noen metode. Listen over strengen filtreres her ved å bruke en annen liste. Her er to listevariabler erklært med navnet Liste1 og liste2. Verdiene til liste2 filtreres ved å bruke verdiene til Liste1. Manuset samsvarer med det første ordet i hver verdi av liste2 med verdiene til Liste1 og skriv ut de verdiene som ikke eksisterer i Liste1.

# Erklære to listevariabler
liste1 = ['perl', 'php', 'java', 'asp']
liste2 = ['JavaScript er skriptspråk på klientsiden',
'PHP er et skriptspråk på serversiden',
'Java er et programmeringsspråk',
'Bash er et skriptspråk']
# Filtrer den andre listen basert på første liste
filter_data = [x for x i liste2 hvis
ALLE (y ikke i x for y i liste1)]
# Skriv ut data før filter og etter filter
print ("Innholdet i den første listen:", liste1)
Print ("Innholdet i den andre listen:", List2)
print ("Innholdet i den andre listen etter filter:", filter_data)

Produksjon:

Kjør manuset. Her, Liste1 inneholder ikke ordet 'Bash'. Utgangen vil bare inneholde en verdi fra liste2 det er 'Bash er et skriptspråk '.

Filtrer en liste over streng ved hjelp av en annen liste og tilpasset funksjon

Dette eksemplet viser hvordan en liste over streng kan filtreres ved å bruke en annen liste og tilpasset filterfunksjon. Skriptet inneholder to listevariabler som heter List1 og List2. Den tilpassede filterfunksjonen vil finne ut de vanlige verdiene til begge listevariablene.

# Erklære to listevariabler
liste1 = ['90', '67', '34', '55', '12', '87', '32']
liste2 = ['9', '90', '38', '45', '12', '20']
# Erklære en finans for å filtrere data fra den første listen
def filter (liste1, liste2):
retur [n for n i liste1 hvis
hvilken som helst (m i n for m i liste2)]
# Skriv ut listedataene før filter og etter filter
print ("Innholdet i liste1:", liste1)
print ("Innholdet i liste2:", liste2)
print ("Data etter filter", filter (liste1, liste2))

Produksjon:

Kjør manuset. 90 og 12 verdier finnes i begge listevariablene. Følgende utgang vil bli generert etter å ha kjørt skriptet.

Filtrer en liste over streng ved hjelp av vanlig uttrykk

Listen filtreres ved å bruke alle() og noen() metoder i de to foregående eksemplene. Et vanlig uttrykk brukes i dette eksemplet for å filtrere dataene fra en liste. Et vanlig uttrykk er et mønster der data kan søkes eller matches. 're' Modul brukes i Python for å bruke vanlig uttrykk i skriptet. Her er en liste erklært med fagkoder. Et vanlig uttrykk brukes til å filtrere de fagkodene som starter med ordet, 'CSE'. '^'Symbol brukes i vanlige uttrykksmønstre for å søke ved start av teksten.

# Importer re -modul for å bruke vanlig uttrykk
Import re
# Erklære at listen inneholder emnekode
Sublist = ['CSE-407', 'PHY-101', 'CSE-101', 'ENG-102', 'MAT-202']
# Forklar filterfunksjonen
def filter (datalist):
# Søkedata basert på vanlig uttrykk i listen
Returner [Val for Val i datalist
Hvis re.søk (r '^cse', val)]
# Skriv ut filterdataene
print (filter (sublist))

Produksjon:

Kjør manuset. sublist Variabel inneholder to verdier som starter med 'CSE'. Følgende utgang vises etter å ha kjørt skriptet.

Filtrer en liste over streng ved hjelp av Lamda -uttrykk

Dette eksemplet viser bruken av Lamda uttrykk for å filtrere data fra en liste over strenger. Her en listevariabel som heter Search_word brukes til å filtrere innhold fra en tekstvariabel som heter tekst. Innholdet i teksten blir konvertert til en liste som heter, tekst_ord basert på rom ved bruk av dele() metode. Lamda uttrykk vil utelate disse verdiene fra tekst_ord som eksisterer i Search_word og lagre de filtrerte verdiene i en variabel ved å legge til plass.

# Erklære en liste som inneholder søkeordet
search_word = ["lære", "kode", "programmering", "blogg"]
# Definer teksten der ordet fra listen vil søke
tekst = "Lær Python -programmering fra Linux Hint -blogg"
# Del teksten basert på plass og lagre ordene i en liste
tekst_ord = tekst.dele()
# Bruke Lambda -ekspresjon Filtrer dataene
filter_text = ".Bli med ((Filter (Lambda Val: Val Not in Search_Word, Text_Word)))
# Skriv ut tekst før filtrering og etter filtrering
print ("\ ntext før filtrering: \ n", tekst)
print ("Tekst etter filtrering: \ n", filter_text)

Produksjon:

Kjør manuset. Følgende utgang vises etter å ha kjørt skriptet.

Filtrer en liste over streng ved hjelp av filter () -metode

filter() Metode godtar to parametere. Den første parameteren tar et funksjonsnavn eller Ingen og den andre parameteren tar navnet på listevariabelen som verdier. filter() Metode lagrer disse dataene fra listen hvis den returnerer sant, ellers kaster den dataene. Her, Ingen er gitt som den første parameterverdien. Alle verdier uten falsk vil bli hentet fra listen som filtrerte data.

# Erklære en liste over mixdata
ListData = ['Hello', 200, 1, 'World', False, True, '0']
# Ring filter () metode uten noen og en liste
FilteredData = Filter (Ingen, ListData)
# Skriv ut listen etter filtrering av dataene
skriv ut ('listen etter filtrering:')
for val i filtereddata:
trykk (val)

Produksjon:

Kjør manuset. Listen inneholder bare en falsk verdi som vil bli utelatt i de filtrerte dataene. Følgende utgang vises etter å ha kjørt skriptet.

Konklusjon:

Filtrering er nyttig når du trenger å søke og hente bestemte verdier fra en liste. Jeg håper, eksemplene ovenfor vil hjelpe leserne til å forstå måtene å filtrere data fra en liste over strenger.