Python

Een lijst met strings filteren in Python filter

Een lijst met strings filteren in Python filter
Python gebruikt het gegevenstype lijst om meerdere gegevens in een sequentiële index op te slaan. Het werkt als een numerieke reeks van andere programmeertalen. filter() methode is een zeer nuttige methode van Python. Een of meer gegevenswaarden kunnen worden gefilterd uit elke tekenreeks, lijst of woordenboek in Python met behulp van de filter()-methode.  Het filtert gegevens op basis van een bepaalde voorwaarde. Het slaat gegevens op wanneer de voorwaarde true retourneert en negeert gegevens wanneer deze false retourneert. Hoe de stringgegevens in een lijst in Python kunnen worden gefilterd, wordt in dit artikel getoond aan de hand van verschillende voorbeelden. Je moet Python 3+ gebruiken om de voorbeelden van dit artikel te testen.

Filter een lijst met strings met een andere lijst

Dit voorbeeld laat zien hoe de gegevens in een lijst met tekenreeksen kunnen worden gefilterd zonder enige methode te gebruiken. De lijst van de string wordt hier gefilterd door een andere lijst te gebruiken. Hier worden twee lijstvariabelen gedeclareerd met de naam lijst1 en lijst2. de waarden van lijst2 wordt gefilterd met behulp van de waarden van lijst1. Het script komt overeen met het eerste woord van elke waarde van lijst2 met de waarden van lijst1 en druk die waarden af ​​die niet bestaan ​​in lijst1.

# Declareer twee lijstvariabelen
lijst1 = ['Perl', 'PHP', 'Java', 'ASP']
list2 = ['JavaScript is client-side scripttaal',
'PHP is een server-side scripttaal',
'Java is een programmeertaal',
'Bash is een scripttaal']
 
# Filter de tweede lijst op basis van de eerste lijst
filter_data = [x voor x in lijst2 if
alles (y niet in x voor y in lijst1)]
 
# Lijstgegevens afdrukken voor filter en na filter
print("De inhoud van de eerste lijst:", lijst1)
print("De inhoud van de tweede lijst:", list2)
print("De inhoud van de tweede lijst na filter:", filter_data)

Uitgang:

Voer het script uit. Hier, lijst1 bevat niet het woord 'bash'. De uitvoer bevat slechts één waarde van lijst2 dat is 'Bash is een scripttaal'.

Filter een lijst met strings met een andere lijst en aangepaste functie

Dit voorbeeld laat zien hoe een lijst met tekenreeksen kan worden gefilterd door een andere lijst en de aangepaste filterfunctie te gebruiken. Het script bevat twee lijstvariabelen genaamd list1 en list2. De aangepaste filterfunctie zal de gemeenschappelijke waarden van beide lijstvariabelen achterhalen.

# Declareer twee lijstvariabelen
lijst1 = ['90', '67', '34', '55', '12', '87', '32']
lijst2 = ['9', '90', '38', '45', '12', '20']
 
# Declareer een functie om gegevens uit de eerste lijst te filteren
def Filter(lijst1, lijst2):
return [n voor n in lijst1 als
willekeurig (m in n voor m in lijst2)]
 
# Druk de lijstgegevens af voor filter en na filter
print("De inhoud van lijst1:", lijst1)
print("De inhoud van lijst2:", lijst2)
print("De gegevens na filter",Filter(lijst1, lijst2))

Uitgang:

Voer het script uit. 90 en 12 waarden bestaan ​​in beide lijstvariabelen. De volgende uitvoer wordt gegenereerd na het uitvoeren van het script:.

Filter een lijst met tekenreeksen met behulp van reguliere expressie

Lijst wordt gefilterd door gebruik te maken van alle() en ieder() methoden in de vorige twee voorbeelden. In dit voorbeeld wordt een reguliere expressie gebruikt om de gegevens uit een lijst te filteren. Een reguliere expressie is een patroon waarmee alle gegevens kunnen worden doorzocht of gematcht. 'opnieuw' module wordt in python gebruikt om reguliere expressies toe te passen in het script. Hier wordt een lijst gedeclareerd met onderwerpcodes. Er wordt een reguliere expressie gebruikt om de onderwerpcodes te filteren die beginnen met het woord 'CSE'. '^' symbool wordt gebruikt in reguliere expressiepatronen om aan het begin van de tekst te zoeken.

# Importeer re-module om reguliere expressie te gebruiken
opnieuw importeren
 
# Verklaar dat de lijst onderwerpcode bevat
sublijst = ['CSE-407', 'PHY-101', 'CSE-101', 'ENG-102', 'MAT-202']
# Declareer de filterfunctie
def Filter(datalijst):
# Zoek gegevens op basis van reguliere expressies in de lijst
return [val voor val in datalijst
indien opnieuw.zoeken(r'^CSE', val)]
# Print de filtergegevens
print(Filter(sublijst))

Uitgang:

Voer het script uit. sublijst variabele bevat twee waarden die beginnen met 'CSE'. De volgende uitvoer zal verschijnen na het uitvoeren van het script:.

Filter een lijst met strings met lamda-expressie

Dit voorbeeld toont het gebruik van lamda expressie om gegevens uit een lijst met tekenreeksen te filteren. Hier een lijstvariabele met de naam zoekwoord wordt gebruikt om inhoud te filteren van een tekstvariabele met de naam tekst. De inhoud van de tekst wordt omgezet in een lijst met de naam, tekst_woord op basis van ruimte door gebruik te maken van splitsen() methode. lamda expressie zal die waarden weglaten uit de tekst_woord die bestaan ​​in zoekwoord en sla de gefilterde waarden op in een variabele door spatie toe te voegen.

# Declareer een lijst die het zoekwoord bevat
search_word = ["Teach", "Code", "Programmeren", "Blog"]
# Definieer de tekst waar het woord uit de lijst zal zoeken
text = "Leer Python-programmering van Linux Hint Blog"
# Splits de tekst op basis van spatie en sla de woorden op in een lijst
text_word = tekst.splitsen()
# Gebruik lambda-expressie om de gegevens te filteren
filter_text = ".join((filter(lambda val: val niet i
n zoekwoord, tekstwoord)))
# Tekst afdrukken voor het filteren en na het filteren
print("\nTekst voor filteren:\n", tekst)
print("Tekst na filtering:\n", filter_text)

Uitgang:

Voer het script uit. De volgende uitvoer zal verschijnen na het uitvoeren van het script:.

Filter een lijst met strings met de filter() methode

filter() methode accepteert twee parameters:. De eerste parameter krijgt een functienaam of Geen en de tweede parameter neemt de naam van de lijstvariabele aan als waarden. filter() methode slaat die gegevens op uit de lijst als deze true retourneert, anders worden de gegevens weggegooid. Hier, Geen wordt gegeven als de eerste parameterwaarde. Alle waarden zonder vals worden als gefilterde gegevens uit de lijst opgehaald.

# Declareer een lijst met mixgegevens
listData = ['Hallo', 200, 1, 'Wereld', False, True, '0']
 
# Roep filter() methode aan met Geen en een lijst
filteredData = filter(Geen, lijstData)
 
# Druk de lijst af na het filteren van de gegevens
print('De lijst na filtering:')
voor val in filteredData:
print(val)

Uitgang:

Voer het script uit. De lijst bevat slechts één valse waarde die wordt weggelaten in de gefilterde gegevens. De volgende uitvoer zal verschijnen na het uitvoeren van het script:.

Conclusie:

Filteren is handig wanneer u bepaalde waarden uit een lijst moet zoeken en ophalen. Ik hoop dat de bovenstaande voorbeelden de lezers zullen helpen de manieren te begrijpen om gegevens uit een lijst met tekenreeksen te filteren.

OpenTTD-zelfstudie
OpenTTD is een van de meest populaire simulatiegames voor bedrijven die er zijn. In dit spel moet je een geweldig transportbedrijf creëren. U begint e...
SuperTuxKart voor Linux
SuperTuxKart is een geweldige titel die is ontworpen om je de Mario Kart-ervaring gratis te bieden op je Linux-systeem. Het is behoorlijk uitdagend en...
Strijd om Wesnoth Zelfstudie
The Battle for Wesnoth is een van de meest populaire open source strategiespellen die je op dit moment kunt spelen. Dit spel is niet alleen al heel la...