Python

Sådan filtreres en liste over strenge i Python

Sådan filtreres en liste over strenge i Python
Python bruger listedatatype til at gemme flere data i et sekventielt indeks. Det fungerer som et numerisk udvalg af andre programmeringssprog. filter () metode er en meget nyttig metode til Python. En eller flere dataværdier kan filtreres fra en hvilken som helst streng eller liste eller ordbog i Python ved hjælp af filter () -metoden.  Det filtrerer data baseret på en bestemt tilstand. Det gemmer data, når betingelsen returnerer sandt, og kasserer data, når de returnerer falske. Hvordan strengdataene på en liste kan filtreres i Python vises i denne artikel ved hjælp af forskellige eksempler. Du skal bruge Python 3+ til at teste eksemplerne på denne artikel.

Filtrer en liste med streng ved hjælp af en anden liste

Dette eksempel viser, hvordan dataene i en strengliste kan filtreres uden brug af nogen metode. Listen over strengen filtreres her ved hjælp af en anden liste. Her erklæres to listevariabler med navnet liste1 og liste2. Værdierne af liste2 filtreres ved hjælp af værdierne for liste1. Scriptet matcher det første ord i hver værdi af liste2 med værdierne for liste1 og udskriv de værdier, der ikke findes i liste1.

# Erklær to listevariabler
list1 = ['Perl', 'PHP', 'Java', 'ASP']
list2 = ['JavaScript er scriptingsprog på klientsiden',
'PHP er et script-sprog på serversiden',
'Java er et programmeringssprog',
'Bash er et script-sprog']
 
# Filtrer den anden liste baseret på den første liste
filter_data = [x for x i liste2, hvis
alle (y ikke i x for y i liste1)]
 
# Udskriv listedata før filter og efter filter
print ("Indholdet af den første liste:", liste1)
print ("Indholdet af den anden liste:", liste2)
print ("Indholdet af den anden liste efter filter:", filter_data)

Produktion:

Kør scriptet. Her, liste1 indeholder ikke ordet 'Bash''. Outputtet indeholder kun en værdi fra liste2 det er 'Bash er et skriptsprog '.

Filtrer en liste over strenge ved hjælp af en anden liste og brugerdefineret funktion

Dette eksempel viser, hvordan en liste over strenge kan filtreres ved hjælp af en anden liste og den brugerdefinerede filterfunktion. Scriptet indeholder to listevariabler, der hedder liste1 og liste2. Den tilpassede filterfunktion finder ud af de fælles værdier for begge listevariabler.

# Erklær to listevariabler
liste1 = ['90', '67', '34', '55', '12', '87', '32']
list2 = ['9', '90', '38', '45', '12', '20']
 
# Erklær en funktion til at filtrere data fra den første liste
def Filter (liste1, liste2):
returner [n for n i liste1, hvis
enhver (m i n for m i liste2)]
 
# Udskriv listedataene før filteret og efter filteret
print ("Indholdet af liste1:", liste1)
print ("Indholdet af liste2:", liste2)
print ("Data efter filter", Filter (liste1, liste2))

Produktion:

Kør scriptet. 90 og 12 værdier findes i begge listevariabler. Følgende output genereres efter kørsel af scriptet.

Filtrer en liste med streng ved hjælp af regulært udtryk

Listen filtreres ved hjælp af alle() og nogen() metoder i de foregående to eksempler. Et regulært udtryk bruges i dette eksempel til at filtrere dataene fra en liste. Et regulært udtryk er et mønster, hvormed data kan søges eller matches. 're' modul bruges i python til at anvende regulært udtryk i scriptet. Her erklæres en liste med emnekoder. Et regulært udtryk bruges til at filtrere de emnekoder, der starter med ordet, 'CSE''. ''^'symbol bruges i mønstre med regulært udtryk for at søge i starten af ​​teksten.

# Importér re-modul for at bruge regulært udtryk
import gen
 
# Erklær listen indeholder emnekode
sublist = ['CSE-407', 'PHY-101', 'CSE-101', 'ENG-102', 'MAT-202']
# Erklær filterfunktionen
def Filter (dataliste):
# Søg data baseret på regulært udtryk på listen
return [val for val i dataliste
hvis re.søg (r '^ CSE', val)]
# Udskriv filterdataene
print (Filter (underliste))

Produktion:

Kør scriptet. underliste variabel indeholder to værdier, der starter med 'CSE''. Følgende output vises efter kørsel af scriptet.

Filtrer en liste over strenge ved hjælp af lamda-udtryk

Dette eksempel viser brugen af lamda udtryk for at filtrere data fra en liste over strenge. Her er en listevariabel navngivet søgeord bruges til at filtrere indhold fra en navngivet tekstvariabel tekst. Indholdet af teksten konverteres til en liste med navnet, tekst_ord baseret på plads ved hjælp af dele() metode. lamda udtryk vil udelade disse værdier fra tekst_ord der findes i søgeord og gem de filtrerede værdier i en variabel ved at tilføje plads.

# Erklær en liste, der indeholder søgeordet
search_word = ["Teach", "Code", "Programming", "Blog"]
# Definer teksten, hvor ordet fra listen vil søge
text = "Lær Python-programmering fra Linux-tipbloggen"
# Opdel teksten baseret på mellemrum og gem ordene på en liste
text_word = tekst.dele()
# Brug data fra lambda til at filtrere
filter_text = ".join ((filter (lambda val: val not i
n søgningsord, tekstord)))
# Udskriv tekst før filtrering og efter filtrering
udskriv ("\ nTekst før filtrering: \ n", tekst)
print ("Tekst efter filtrering: \ n", filter_text)

Produktion:

Kør scriptet. Følgende output vises efter kørsel af scriptet.

Filtrer en liste med streng ved hjælp af filter () -metoden

filter() metode accepterer to parametre. Den første parameter tager et funktionsnavn eller Ingen og den anden parameter tager navnet på listevariablen som værdier. filter() metoden gemmer disse data fra listen, hvis de returnerer sandt, ellers kasserer den dataene. Her, Ingen angives som den første parameterværdi. Alle værdier uden falsk hentes fra listen som filtrerede data.

# Erklær en liste over mixdata
listData = ['Hello', 200, 1, 'World', False, True, '0']
 
# Opkaldsfilter () metode med Ingen og en liste
filteredData = filter (Ingen, listData)
 
# Udskriv listen efter filtrering af dataene
print ('Listen efter filtrering:')
for val i filtreret data:
print (val)

Produktion:

Kør scriptet. Listen indeholder kun en falsk værdi, der udelades i de filtrerede data. Følgende output vises efter kørsel af scriptet.

Konklusion:

Filtrering er nyttig, når du skal søge og hente bestemte værdier fra en liste. Jeg håber, ovenstående eksempler hjælper læserne med at forstå måderne til at filtrere data fra en liste over strenge.

Top 5 spiloptagelseskort
Vi har alle set og elsket streaming af gameplay på YouTube. PewDiePie, Jakesepticye og Markiplier er kun nogle af de bedste spillere, der har tjent mi...
Sådan udvikler du et spil på Linux
For et årti siden ville ikke mange Linux-brugere forudsige, at deres foretrukne operativsystem en dag ville være en populær spilplatform til kommercie...
Open Source-porte med kommercielle spilmotorer
Gratis, open source og cross-platform spilmotorgendringer kan bruges til at spille gamle såvel som nogle af de temmelig nylige spiltitler. Denne artik...