Python

Hvordan filtrere en liste over strenger i Python

Hvordan filtrere en liste over strenger i Python
Python bruker listedatatype til å 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 en hvilken som helst streng eller liste eller ordbok i Python ved å bruke filter () -metoden.  Den filtrerer data basert på en bestemt tilstand. Den lagrer data når tilstanden returnerer sant og forkaster data når den returnerer usann. Hvordan strengdataene i en liste kan filtreres i Python, vises i denne artikkelen ved hjelp av forskjellige eksempler. Du må bruke Python 3+ for å teste eksemplene på denne artikkelen.

Filtrer en liste over strenger ved hjelp av en annen liste

Dette eksemplet viser hvordan dataene i en liste over strenger kan filtreres uten å bruke noen metode. Listen over strengen filtreres her ved hjelp av en annen liste. Her er to listevariabler erklært med navnet liste1 og liste2. Verdiene av liste2 filtreres ved å bruke verdiene på liste1. Skriptet vil matche det første ordet i hver verdi av liste2 med verdiene av liste1 og skriv ut verdiene som ikke finnes i liste1.

# Deklarer to listevariabler
list1 = ['Perl', 'PHP', 'Java', 'ASP']
list2 = ['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å den første listen
filter_data = [x for x i liste2 hvis
alle (y ikke i x for y i liste1)]
 
# Skriv ut listedata før filter og etter filter
print ("Innholdet i den første listen:", list1)
print ("Innholdet i den andre listen:", list2)
print ("Innholdet i den andre listen etter filter:", filter_data)

Produksjon:

Kjør skriptet. 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 strenger ved hjelp av en annen liste og tilpasset funksjon

Dette eksemplet viser hvordan en liste over strenger kan filtreres ved å bruke en annen liste og den tilpassede filterfunksjonen. Skriptet inneholder to listevariabler som heter liste1 og liste2. Den egendefinerte filterfunksjonen vil finne ut de vanlige verdiene til begge listevariablene.

# Erklær to listevariabler
list1 = ['90', '67', '34', '55', '12', '87', '32']
list2 = ['9', '90', '38', '45', '12', '20']
 
# Erklær en funksjon for å filtrere data fra den første listen
def Filter (liste1, liste2):
returner [n for n i liste1 hvis
noen (m i n for m i liste2)]
 
# Skriv ut listedataene før filteret og etter filteret
print ("Innholdet i liste1:", liste1)
print ("Innholdet i liste2:", liste2)
skriv ut ("Dataene etter filteret", Filter (liste1, liste2))

Produksjon:

Kjør skriptet. 90 og 12 verdier finnes i begge listevariablene. Følgende utdata genereres etter at man har kjørt skriptet.

Filtrer en liste over strenger ved å bruke regulært uttrykk

Listen filtreres ved hjelp av 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' modulen brukes i python for å bruke vanlig uttrykk i skriptet. Her blir en liste erklært med emnekoder. Et vanlig uttrykk brukes til å filtrere emnekodene som begynner med ordet, 'CSE'. '^'symbolet brukes i regulære uttrykksmønstre for å søke i begynnelsen av teksten.

# Importer re-modul for å bruke vanlig uttrykk
importer re
 
# Erklær at listen inneholder emnekode
sublist = ['CSE-407', 'PHY-101', 'CSE-101', 'ENG-102', 'MAT-202']
# Erklær filterfunksjonen
def Filter (dataliste):
# Søk etter data basert på regulært uttrykk i listen
return [val for val i dataliste
hvis re.søk (r '^ CSE', val)]
# Skriv ut filterdataene
skriv ut (Filter (underliste))

Produksjon:

Kjør skriptet. underliste variabel inneholder to verdier som begynner med 'CSE'. Følgende utdata vises etter kjøring av skriptet.

Filtrer en liste over strenger ved hjelp av lamdauttrykk

Dette eksemplet viser bruken av lamda uttrykk for å filtrere data fra en liste over strenger. Her er en listevariabel kalt søkeord brukes til å filtrere innhold fra en tekstvariabel som heter tekst. Innholdet i teksten konverteres til en liste med navn, tekstord basert på plass ved å bruke dele() metode. lamda uttrykk vil utelate disse verdiene fra tekstord som eksisterer i søkeord og lagre de filtrerte verdiene i en variabel ved å legge til mellomrom.

# Deklarer en liste som inneholder søkeordet
search_word = ["Teach", "Code", "Programming", "Blog"]
# Definer teksten der ordet fra listen vil søke
text = "Lær Python-programmering fra Linux Hint Blog"
# Del teksten basert på mellomrom og lagre ordene i en liste
text_word = tekst.dele()
# Bruk data fra lambda-uttrykk
filter_text = ".bli med ((filter (lambda val: val not i
n søkeord, tekstord)))
# Skriv ut tekst før filtrering og etter filtrering
skriv ut ("\ nTekst før filtrering: \ n", tekst)
skriv ut ("Tekst etter filtrering: \ n", filter_text)

Produksjon:

Kjør skriptet. Følgende utdata vises etter kjøring av skriptet.

Filtrer en liste over strenger ved hjelp av filter () -metoden

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

# Erklær en liste over miksdata
listData = ['Hello', 200, 1, 'World', False, True, '0']
 
# Metode for anropsfilter () med Ingen og en liste
filteredData = filter (Ingen, listData)
 
# Skriv ut listen etter filtrering av dataene
skriv ut ('Listen etter filtrering:')
for val i filtrerte data:
skrive ut (val)

Produksjon:

Kjør skriptet. Listen inneholder bare en falsk verdi som vil bli utelatt i de filtrerte dataene. Følgende utdata vises etter kjøring av skriptet.

Konklusjon:

Filtrering er nyttig når du trenger å søke etter 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.

Hvordan utvikle et spill på Linux
For et tiår siden ville ikke mange Linux-brukere forutsi at deres favorittoperativsystem en dag ville være en populær spillplattform for kommersielle ...
Åpne kildeporter for kommersielle spillmotorer
Gratis, åpen kildekode og plattformspillmotorrekreasjoner kan brukes til å spille gamle så vel som noen av de ganske nylige spilletitlene. Denne artik...
Beste kommandolinjespill for Linux
Kommandolinjen er ikke bare din største allierte når du bruker Linux, den kan også være kilden til underholdning fordi du kan bruke den til å spille m...