Krajta

Jak filtrovat seznam řetězců v Pythonu

Jak filtrovat seznam řetězců v Pythonu
Python používá datový typ seznamu k ukládání více dat do sekvenčního indexu. Funguje to jako numerické pole jiných programovacích jazyků. metoda filter () je velmi užitečná metoda Pythonu. Jednu nebo více datových hodnot lze filtrovat z libovolného řetězce, seznamu nebo slovníku v Pythonu pomocí metody filter ().  Filtruje data na základě konkrétních podmínek. Ukládá data, když podmínka vrátí true, a zahodí data, když vrátí false. Jak lze filtrovat data řetězce v seznamu v Pythonu, ukazuje tento článek pomocí různých příkladů. K otestování příkladů tohoto článku musíte použít Python 3+.

Filtrujte seznam řetězců pomocí jiného seznamu

Tento příklad ukazuje, jak lze filtrovat data v seznamu řetězců bez použití jakékoli metody. Seznam řetězce je zde filtrován pomocí jiného seznamu. Zde jsou deklarovány dvě proměnné seznamu se jménem seznam1 a seznam2. Hodnoty seznam2 je filtrován pomocí hodnot seznam1. Skript bude odpovídat prvnímu slovu každé hodnoty seznam2 s hodnotami seznam1 a vytisknout ty hodnoty, které neexistují seznam1.

# Deklarujte dvě proměnné seznamu
list1 = ['Perl', 'PHP', 'Java', 'ASP']
list2 = ['JavaScript je skriptovací jazyk na straně klienta',
„PHP je skriptovací jazyk na straně serveru“,
„Java je programovací jazyk“,
'Bash je skriptovací jazyk']
 
# Filtrování druhého seznamu podle prvního seznamu
filter_data = [x pro x v seznamu2, pokud
all (y not in x for y in list1)]
 
# Vytisknout data seznamu před filtrem a po filtru
tisk ("Obsah prvního seznamu:", seznam1)
print ("Obsah druhého seznamu:", seznam2)
print ("Obsah druhého seznamu po filtru:", filter_data)

Výstup:

Spusťte skript. Tady, seznam1 neobsahuje slovo „Bash''. Výstup bude obsahovat pouze jednu hodnotu z seznam2 to je 'Bash je skriptovací jazyk '.

Filtrujte seznam řetězců pomocí jiného seznamu a vlastní funkce

Tento příklad ukazuje, jak lze seznam řetězců filtrovat pomocí jiného seznamu a funkce vlastního filtru. Skript obsahuje dvě proměnné seznamu s názvem list1 a list2. Funkce vlastního filtru zjistí společné hodnoty obou proměnných seznamu.

# Deklarujte dvě proměnné seznamu
list1 = ['90', '67', '34', '55', '12', '87', '32']
list2 = ['9', '90', '38', '45', '12', '20']
 
# Deklarujte funkci pro filtrování dat z prvního seznamu
def Filtr (seznam1, seznam2):
návrat [n pro n v seznamu1, pokud
libovolný (m v n pro m v seznamu2)]
 
# Vytiskněte data seznamu před filtrem a po filtru
tisk ("Obsah seznamu1:", seznam1)
print ("Obsah list2:", list2)
tisk ("Data za filtrem", Filtr (seznam1, seznam2))

Výstup:

Spusťte skript. V obou proměnných seznamu existuje 90 a 12 hodnot. Po spuštění skriptu bude vygenerován následující výstup.

Filtrujte seznam řetězců pomocí regulárního výrazu

Seznam je filtrován pomocí Všechno() a žádný() metody v předchozích dvou příkladech. K filtrování dat ze seznamu se v tomto příkladu používá regulární výraz. Regulární výraz je vzor, ​​podle kterého lze prohledávat nebo porovnávat libovolná data. 're' modul se používá v pythonu k použití regulárního výrazu ve skriptu. Zde je seznam deklarován s kódy předmětů. Regulární výraz se používá k filtrování kódů předmětů, které začínají slovem, 'CSE''. ''^Symbol 'se používá ve vzorech regulárních výrazů k vyhledávání na začátku textu.

# Importujte modul pro použití regulárního výrazu
import re
 
# Prohlásit, že seznam obsahuje kód předmětu
sublist = ['CSE-407', 'PHY-101', 'CSE-101', 'ENG-102', 'MAT-202']
# Deklarujte funkci filtru
def filtr (datalist):
# Vyhledat data na základě regulárního výrazu v seznamu
návrat [val pro val v datalistu
pokud znovu.hledat (r '^ CSE', val)]
# Vytiskněte data filtru
tisk (filtr (podseznam))

Výstup:

Spusťte skript. podseznam proměnná obsahuje dvě hodnoty, které začínají 'CSE''. Po spuštění skriptu se zobrazí následující výstup.

Filtrujte seznam řetězců pomocí lamda výrazu

Tento příklad ukazuje použití lamda výraz pro filtrování dat ze seznamu řetězců. Zde je uvedena proměnná seznamu hledat_slovo se používá k filtrování obsahu z textové proměnné s názvem text. Obsah textu se převede na seznam s názvem, textové slovo na základě prostoru pomocí rozdělit() metoda. lamda výraz vynechá tyto hodnoty z textové slovo které existují v hledat_slovo a uložte filtrované hodnoty do proměnné přidáním mezery.

# Deklarujte seznam, který obsahuje hledané slovo
search_word = ["Teach", "Code", "Programming", "Blog"]
# Definujte text, kde bude slovo ze seznamu vyhledáváno
text = "Naučte se programování v Pythonu z blogu s nápovědou pro Linux"
# Rozdělte text podle prostoru a uložte slova do seznamu
text_word = text.rozdělit()
# Pomocí výrazu lambda filtrujte data
filter_text = ".join ((filter (lambda val: val not i
n vyhledávací slovo, textové slovo)))
# Tiskněte text před filtrováním a po filtrování
print ("\ nText před filtrováním: \ n", text)
print ("Text po filtrování: \ n", filter_text)

Výstup:

Spusťte skript. Po spuštění skriptu se zobrazí následující výstup.

Filtrujte seznam řetězců pomocí metody filter ()

filtr() metoda přijímá dva parametry. První parametr má název funkce nebo Žádný a druhý parametr přebírá název proměnné seznamu jako hodnoty. filtr() metoda uloží tato data ze seznamu, pokud vrátí hodnotu true, jinak data zahodí. Tady, Žádný je uvedena jako první hodnota parametru. Všechny hodnoty bez Nepravdivé budou načteny ze seznamu jako filtrovaná data.

# Deklarujte seznam dat mixu
listData = ['Hello', 200, 1, 'World', False, True, '0']
 
# Metoda call filter () s None a seznamem
filtredata = filtr (žádný, seznamData)
 
# Vytiskněte seznam po filtrování dat
print ('Seznam po filtrování:')
pro val ve filtrovaných datech:
tisk (val)

Výstup:

Spusťte skript. Seznam obsahuje pouze jednu falešnou hodnotu, která bude ve filtrovaných datech vynechána. Po spuštění skriptu se zobrazí následující výstup.

Závěr:

Filtrování je užitečné, když potřebujete vyhledat a načíst konkrétní hodnoty ze seznamu. Doufám, že výše uvedené příklady pomohou čtenářům porozumět způsobům filtrování dat ze seznamu řetězců.

Recenze bezdrátové myši Microsoft Sculpt Touch
Nedávno jsem četl o Microsoft Sculpt Touch bezdrátová myš a rozhodl se ji koupit. Po chvíli používání jsem se rozhodl se s ním podělit o své zkušenost...
Trackpad a ukazatel myši AppyMouse na obrazovce pro tablety Windows
Uživatelé tabletů často postrádají ukazatel myši, zejména když obvykle používají notebooky. Dotykové smartphony a tablety mají mnoho výhod a jediným o...
Střední tlačítko myši nefunguje ve Windows 10
The prostřední tlačítko myši pomáhá procházet dlouhé webové stránky a obrazovky se spoustou dat. Pokud se to zastaví, budete nakonec používat klávesni...