Pytonorm

Hur man filtrerar en lista med strängar i Python

Hur man filtrerar en lista med strängar i Python
Python använder listdatatyp för att lagra flera data i ett sekventiellt index. Det fungerar som ett numeriskt utbud av andra programmeringsspråk. filter () -metoden är en mycket användbar metod för Python. Ett eller flera datavärden kan filtreras från valfri sträng eller lista eller ordlista i Python med filter () -metoden.  Det filtrerar data baserat på ett visst tillstånd. Den lagrar data när villkoret returnerar sant och kasserar data när det returnerar falskt. Hur strängdata i en lista kan filtreras i Python visas i den här artikeln med hjälp av olika exempel. Du måste använda Python 3+ för att testa exemplen i den här artikeln.

Filtrera en lista med strängar med en annan lista

Det här exemplet visar hur data i en lista med strängar kan filtreras utan att använda någon metod. Listan över strängen filtreras här genom att använda en annan lista. Här deklareras två listvariabler med namnet lista1 och lista2. Värdena för lista2 filtreras med hjälp av värdena för lista1. Skriptet matchar det första ordet i varje värde av lista2 med värdena för lista1 och skriv ut de värden som inte finns i lista1.

# Förklara två listvariabler
list1 = ['Perl', 'PHP', 'Java', 'ASP']
list2 = ['JavaScript är skriptspråk på klientsidan',
'PHP är ett skriptspråk på serversidan',
'Java är ett programmeringsspråk',
'Bash är ett skriptspråk']
 
# Filtrera den andra listan baserat på den första listan
filter_data = [x för x i list2 om
alla (y inte i x för y i lista1)]
 
# Skriv ut listdata före filter och efter filter
print ("Innehållet i den första listan:", list1)
print ("Innehållet i den andra listan:", list2)
skriv ut ("Innehållet i den andra listan efter filter:", filter_data)

Produktion:

Kör manuset. Här, lista1 innehåller inte ordet 'Våldsamt slag''. Utgången innehåller endast ett värde från lista2 det är 'Bash är ett skriptspråk '.

Filtrera en lista med strängar med en annan lista och anpassad funktion

Det här exemplet visar hur en lista med strängar kan filtreras med en annan lista och den anpassade filterfunktionen. Skriptet innehåller två listvariabler som heter list1 och list2. Den anpassade filterfunktionen hittar de gemensamma värdena för båda listvariablerna.

# Förklara två listvariabler
list1 = ['90', '67', '34', '55', '12', '87', '32']
list2 = ['9', '90', '38', '45', '12', '20']
 
# Förklara en funktion för att filtrera data från den första listan
def Filter (lista1, lista2):
returnera [n för n i lista1 om
valfri (m in n för m i list2)]
 
# Skriv ut listdata före filter och efter filter
skriv ut ("Innehållet i lista1:", lista1)
print ("Innehållet i list2:", list2)
skriva ut ("Data efter filter", Filter (lista1, lista2))

Produktion:

Kör manuset. 90 och 12 värden finns i båda listvariablerna. Följande utdata genereras efter körning av skriptet.

Filtrera en lista med strängar med hjälp av reguljära uttryck

Listan filtreras med hjälp av Allt() och några() metoder i de två föregående exemplen. Ett reguljärt uttryck används i detta exempel för att filtrera data från en lista. Ett reguljärt uttryck är ett mönster genom vilket alla data kan sökas eller matchas. 're' modulen används i python för att tillämpa reguljärt uttryck i skriptet. Här deklareras en lista med ämneskoder. Ett vanligt uttryck används för att filtrera de ämneskoder som börjar med ordet, 'CSE''. ''^'symbol används i reguljära uttrycksmönster för att söka i början av texten.

# Importera re-modul för att använda reguljära uttryck
importera om
 
# Förklara att listan innehåller ämneskod
sublist = ['CSE-407', 'PHY-101', 'CSE-101', 'ENG-102', 'MAT-202']
# Förklara filterfunktionen
def Filter (datalist):
# Sök data baserat på reguljära uttryck i listan
returnera [val för val i datalistan
om re.sök (r '^ CSE', val)]
# Skriv ut filterdata
skriv ut (Filter (underlista))

Produktion:

Kör manuset. underlista variabel innehåller två värden som börjar med 'CSE''. Följande utdata visas efter körning av skriptet.

Filtrera en lista med strängar med lamdauttryck

Detta exempel visar användningen av lamda uttryck för att filtrera data från en lista med strängar. Här heter en listvariabel sökord används för att filtrera innehåll från en textvariabel med namnet text. Innehållet i texten konverteras till en lista med namnet, text_ord baserat på utrymme genom att använda dela() metod. lamda uttryck utelämnar dessa värden från text_ord som finns i sökord och lagra de filtrerade värdena i en variabel genom att lägga till utrymme.

# Förklara en lista som innehåller sökordet
search_word = ["Teach", "Code", "Programming", "Blog"]
# Definiera texten där ordet i listan ska söka
text = "Lär dig Python-programmering från Linux-tipsbloggen"
# Dela upp texten baserat på mellanslag och spara orden i en lista
text_word = text.dela()
# Filtrera data med hjälp av lambdauttryck
filter_text = ".gå med ((filter (lambda val: val not i
n sökord, textord)))
# Skriv ut text före filtrering och efter filtrering
skriv ut ("\ nText före filtrering: \ n", text)
skriv ut ("Text efter filtrering: \ n", filter_text)

Produktion:

Kör manuset. Följande utdata visas efter körning av skriptet.

Filtrera en lista med strängar med filter () -metoden

filtrera() metoden accepterar två parametrar. Den första parametern tar ett funktionsnamn eller Ingen och den andra parametern tar namnet på listvariabeln som värden. filtrera() metoden lagrar dessa data från listan om den returnerar true, annars kasserar den data. Här, Ingen ges som det första parametervärdet. Alla värden utan falsk kommer att hämtas från listan som filtrerade data.

# Förklara en lista med mixdata
listData = ['Hello', 200, 1, 'World', False, True, '0']
 
# Metod för samtalsfilter () med Ingen och en lista
filteredData = filter (None, listData)
 
# Skriv ut listan efter filtrering av data
skriv ut ('Listan efter filtrering:')
för val i filtrerad data:
tryck (val)

Produktion:

Kör manuset. Listan innehåller endast ett falskt värde som kommer att utelämnas i de filtrerade uppgifterna. Följande utdata visas efter körning av skriptet.

Slutsats:

Filtrering är till hjälp när du behöver söka och hämta vissa värden från en lista. Jag hoppas att ovanstående exempel hjälper läsarna att förstå sätten att filtrera data från en lista med strängar.

HD Remastered Games för Linux som aldrig tidigare hade en Linux-version
Många spelutvecklare och utgivare kommer med HD-remaster av gamla spel för att förlänga livstiden för franchisen, snälla fans som begär kompatibilitet...
Hur man använder AutoKey för att automatisera Linux-spel
AutoKey är ett verktyg för desktopautomatisering för Linux och X11, programmerat i Python 3, GTK och Qt. Med hjälp av dess skript och MACRO-funktional...
Hur man visar FPS-räknare i Linux-spel
Linux-spel fick ett stort tryck när Valve tillkännagav Linux-stöd för Steam-klient och deras spel 2012. Sedan dess har många AAA- och indiespel tagit ...