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å listvariablerlist1 = ['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å listvariablerlist1 = ['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 uttryckimportera 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ökordetsearch_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 mixdatalistData = ['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.