Seznam křižovatky v Pythonu

List Intersection Python



V pythonu existuje mnoho objektových proměnných pro ukládání různých datových typů. The seznam je jednou z těchto proměnných a může ukládat různé typy dat pro různé potřeby. Někdy musíme pro účely programování najít společné, neobvyklé nebo běžné i neobvyklé datové položky z více seznamů. Python obsahuje několik předdefinovaných funkcí a operátorů, které mohou provádět tyto typy úkolů pro sady Pythonu. Hledání společných dat z více seznamů se nazývá seznamová křižovatka, ale neexistuje žádný operátor ani vestavěná funkce pro seznamy, jako jsou sady pro hledání společných datových položek z více seznamů. Tento tutoriál vám ukáže, jak protínat seznamy v Pythonu.

Průsečík

Před zahájením tohoto kurzu bude vysvětlen koncept křižovatky. Níže jsou jako příklad uvedeny dva:







Seznam 1= [4, 7, 2. 3, 9, 6, jedenáct]
Seznam 2= [6, 5, 1, dvacet, 9, 7, 4, 3]

Po použití křižovatky, pokud je výsledek uložen v jiném seznamu, možná s názvem List3, pak bude obsahovat následující data.



Seznam 3= [4, 6, 7, 9]

Grafické znázornění List3 je uvedeno níže:







Příklad 1: Protnutí seznamů metodou set ()

Následující příklad ukazuje, jak můžete protínat dva seznamy pomocí soubor() metoda a & operátor. Zde jsou deklarovány dva seznamy s názvem list1 a list2. Oba tyto seznamy obsahují číselné hodnoty. Třetí seznam je generován převedením seznamu1 a seznamu 2 do sady prostřednictvím sady () metoda a použití křižovatky pomocí & operátor. Dále se vytisknou hodnoty tří seznamů.

#!/usr/bin/env python3
# Definujte seznam 1
seznam 1= [22, 8, Čtyři pět, jedenáct, 3. 4, 9, dvacet, 7]
# Definujte seznam2
seznam 2= [12, 9, dvacet, 78, 53, 8, 2, 30,31]
# Vytvořte list3 průsečíkem list1 a list2
seznam 3= seznam(soubor(seznam 1)&soubor(seznam 2))
# Tisk seznamu 1
tisk('Hodnoty seznamu1: n',seznam 1)
# Tisk seznamu 2
tisk(`` Hodnoty seznamu2: n',seznam 2)
# Tisk seznamu 3
tisk('Hodnoty seznamu3 po protnutí seznamu1 a seznamu2: n',seznam 3)

Výstup



Po spuštění skriptu se zobrazí následující výstup. Pro oba seznamy jsou společné tři hodnoty. Tyto hodnoty jsou 8, 9 a 20 a jsou uvedeny v obsahu třetího seznamu.

Příklad 2: Protínající se seznamy pomocí metody intersection ()

Neexistuje přímá, vestavěná metoda pro objekt seznamu, která by zjišťovala hodnoty průsečíků mezi dvěma seznamy. Sada však má vestavěnou metodu s názvem průsečík() , zjistit společné hodnoty mezi sadami. Vlastní funkce s názvem intersectionLists () , je definován v následujícím skriptu, aby zjistil společné hodnoty mezi těmito dvěma seznamy. Jedním omezením této sady je, že může obsahovat pouze číselná data. Proměnná seznamu může obsahovat různé typy datových řetězců, včetně číselných, logických atd. Ve skriptu seznam 1 a seznam 2 obsahovat všechna řetězcová data včetně a textu. Skript vytiskne všechny běžné řetězce a číselné hodnoty mezi nimi seznam 1 a seznam 2 .

#!/usr/bin/env python3

# Definujte funkci pro návrat průniku dvou seznamů
defintersectLists(seznam 1,seznam 2):
vrátit se soubor(seznam 1).průsečík(seznam 2)

# Definujte seznam 1
seznam 1= ['Ahoj','7','8','10','2']
# Definujte seznam2
seznam 2= ['8','3. 4','Ahoj','2','dvacet jedna','1',10]
'' 'Zavolejte vlastní funkci, kterou chcete uložit
výsledek průsečíku list1 a list2
do seznamu3 '' '

seznam 3=intersectLists(seznam 1,seznam 2)
# Tisk seznamu 1
tisk('Hodnoty seznamu1: n',seznam 1)
# Tisk seznamu 2
tisk(`` Hodnoty seznamu2: n',seznam 2)
# Tisk seznamu 3
tisk('Hodnoty seznamu3 po protnutí seznamu1 a seznamu2: n',seznam 3)

Výstup

Po spuštění skriptu se zobrazí následující výstup. Zde jsou společné hodnoty mezi těmito dvěma seznamy „2“, „8“ a „Dobrý den“.

Příklad 3: Protínání seznamů metodou smyčky

Předchozí dva příklady ukazují průnik seznamu pomocí předdefinovaných funkcí. Následující příklad ukazuje průnik seznamu bez jakékoli vestavěné funkce. Toho lze dosáhnout pomocí smyčky. Ve skriptu jsou deklarovány dva seznamy textových dat. The pro smyčka se zde používá ke zjištění běžných textových hodnot mezi seznam 1 a seznam2, a které jsou uloženy v proměnné, seznam 3 . Dále se vytisknou hodnoty těchto tří proměnných seznamu.

#!/usr/bin/env python3

# Definujte seznam 1
seznam 1= ['Farhan','Abir','Akash','Meena','Mazher']
# Definujte seznam2
seznam 2= ['Meena','Moyna','Nobel','Blíže','Abir','Farheen']
# Najděte křižovatku pomocí smyčky for a výsledek uložte do list3
seznam 3= [hodnotaprohodnotavseznam 1-lihodnotavseznam 2]

# Tisk seznamu 1
tisk('Hodnoty seznamu1: n',seznam 1)
# Tisk seznamu 2
tisk(`` Hodnoty seznamu2: n',seznam 2)
# Tisk seznamu 3
tisk('Hodnoty seznamu3 po protnutí seznamu1 a seznamu2: n',seznam 3)

Výstup

Po spuštění skriptu se zobrazí následující výstup. Zde jsou běžné textové hodnoty těchto dvou seznamů „Abir“ a 'Meena.'

Příklad 4: Protínání jednoduchých a vnořených seznamů pomocí metody filter ()

Následující příklad ukazuje průnik mezi jednoduchým seznamem a vnořeným seznamem. The filtr() metoda a lambda funkce se používají ve skriptu k provedení průniku mezi list1 a list2. Pokud seznam obsahuje jako položky seznamu jeden nebo více seznamů, pak se seznam nazývá vnořený seznam. Tady, seznam 1 je jednoduchý seznam a seznam 2 je vnořený seznam, zatímco seznam 3 obsahuje hodnoty průniku seznam 1 a seznam 2 .

#!/usr/bin/env python3

# Definujte jednoduchý seznam
seznam 1= [22, 8, Čtyři pět, jedenáct, 3. 4, 9, dvacet, 7]
# Definujte vnořený seznam
seznam 2= [[12, 9, dvacet], [78, jedenáct, 53, 8], [2, 30, 31, Čtyři pět]]
# Vytvořte list3 průsečíkem list1 a list2 pomocí filtru ()
seznam 3= [seznam(filtr(lambdan: nvseznam 1,slist)) proslistvseznam 2]

# Tisk seznamu 1
tisk('Hodnoty seznamu1: n',seznam 1)
# Tisk seznamu 2
tisk(`` Hodnoty seznamu2: n',seznam 2)
# Tisk seznamu 3
tisk('Hodnoty seznamu3 po protnutí seznamu1 a seznamu2: n',seznam 3)

Výstup

Po spuštění skriptu se zobrazí následující výstup. Proměnná list2 obsahuje tři další seznamy jako položky seznamu. Výsledek tedy ukazuje průnik mezi těmito třemi dílčími seznamy list2 s list1.

Závěr

Průsečík seznamu je užitečný způsob, jak najít společné hodnoty mezi seznamy, které obsahují velký počet položek seznamu. Metody pro provádění průniku seznamu s vestavěnými funkcemi a bez nich jsou uvedeny v tomto kurzu. Po přečtení tohoto článku by měl být koncept průsečíku seznamu jasný a měli byste být schopni použít průsečík seznamu ve svém skriptu následujícím způsobem zobrazeným v tomto kurzu.