Zoznam križovatiek v Pythone

List Intersection Python



V pythone existuje mnoho objektových premenných na ukladanie rôznych dátových typov. The zoznam je jednou z týchto premenných a môže ukladať rôzne typy údajov pre rôzne potreby. Niekedy musíme na účely programovania nájsť spoločné, neobvyklé alebo bežné aj neobvyklé položky údajov z viacerých zoznamov. Python obsahuje niekoľko vstavaných funkcií a operátorov, ktoré môžu vykonávať tieto typy úloh pre sady Python. Hľadanie spoločných údajov z viacerých zoznamov sa nazýva priesečník zoznamov, ale neexistuje žiadny operátor ani vstavaná funkcia pre zoznamy, ako sú sady, na hľadanie spoločných dátových položiek z viacerých zoznamov. Tento tutoriál vám ukáže, ako pretínať zoznamy v Pythone.

Križovatka

Pred začiatkom tohto tutoriálu bude vysvetlený pojem križovatky. Nasledujú dva ako príklad:







Zoznam 1= [4, 7, 2. 3, 9, 6, jedenásť]
Zoznam2= [6, 5, 1, dvadsať, 9, 7, 4, 3]

Ak je výsledok po použití križovatky uložený v inom zozname, pravdepodobne s názvom List3, bude obsahovať nasledujúce údaje.



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

Grafické znázornenie List3 je uvedené nižšie:







Príklad 1: Protínanie zoznamov metódou set ()

Nasledujúci príklad ukazuje, ako môžete pretínať dva zoznamy pomocou nastaviť () metóda a & operátor. Tu sú deklarované dva zoznamy s názvom list1 a list2. Oba tieto zoznamy obsahujú číselné hodnoty. Tretí zoznam sa vygeneruje konvertovaním zoznamu1 a zoznamu 2 na množinu prostredníctvom sady () metóda a použitie priesečníka pomocou & operátor. Ďalej sa vytlačia hodnoty troch zoznamov.

#!/usr/bin/env python3
# Definujte zoznam1
zoznam 1= [22, 8, Štyria, piati, jedenásť, 3. 4, 9, dvadsať, 7]
# Definujte zoznam2
zoznam2= [12, 9, dvadsať, 78, 53, 8, 2, 30,31]
# Vytvorte zoznam3 priesečníkom zoznamov1 a zoznam2
zoznam 3= zoznam(nastaviť(zoznam 1)&nastaviť(zoznam2))
# Vytlačiť zoznam
vytlačiť(„Hodnoty zoznamu1: n',zoznam 1)
# Vytlačiť zoznam2
vytlačiť(„Hodnoty zoznamu2: n',zoznam2)
# Vytlačiť zoznam3
vytlačiť(„Hodnoty zoznamu3 po pretínaní zoznamu1 a zoznamu2: n',zoznam 3)

Výkon



Po spustení skriptu sa zobrazí nasledujúci výstup. Pre oba zoznamy sú spoločné tri hodnoty. Tieto hodnoty sú 8, 9 a 20 a sú uvedené v obsahu tretieho zoznamu.

Príklad 2: Protínajúce sa zoznamy pomocou metódy intersection ()

Pre objekt zoznamu neexistuje žiadna priama, vstavaná metóda na zistenie hodnôt priesečníkov medzi dvoma zoznamami. Sada však má vstavanú metódu s názvom križovatka () , zistiť spoločné hodnoty medzi množinami. Vlastná funkcia s názvom intersectionLists () , je definovaný v nasledujúcom skripte, aby zistil spoločné hodnoty medzi týmito dvoma zoznamami. Jedným obmedzením tejto sady je, že môže obsahovať iba číselné údaje. Premenná zoznamu môže obsahovať rôzne typy dátových reťazcov, vrátane numerických, boolovských atď. V skripte je zoznam 1 a zoznam2 obsahovať všetky údaje reťazca vrátane textu. Skript vytlačí všetky bežné reťazcové a číselné hodnoty medzi nimi zoznam 1 a zoznam2 .

#!/usr/bin/env python3

# Definujte funkciu na vrátenie priesečníka dvoch zoznamov
defintersectLists(zoznam 1,zoznam2):
vrátiť sa nastaviť(zoznam 1).križovatka(zoznam2)

# Definujte zoznam1
zoznam 1= ['Ahoj','7','8','10','2']
# Definujte zoznam2
zoznam2= ['8',„3. 4“,'Ahoj','2','dvadsaťjeden','1',10]
'' 'Zavolajte vlastnú funkciu, ktorú chcete uložiť
výsledok priesečníka list1 a list2
do zoznamu3 '' '

zoznam 3=intersectLists(zoznam 1,zoznam2)
# Vytlačiť zoznam
vytlačiť(„Hodnoty zoznamu1: n',zoznam 1)
# Vytlačiť zoznam2
vytlačiť(„Hodnoty zoznamu2: n',zoznam2)
# Vytlačiť zoznam3
vytlačiť(„Hodnoty zoznamu3 po pretínaní zoznamu1 a zoznamu2: n',zoznam 3)

Výkon

Po spustení skriptu sa zobrazí nasledujúci výstup. Tu sú spoločné hodnoty medzi týmito dvoma zoznamami „2“, „8“ a „ahoj“.

Príklad 3: Protínanie zoznamov pomocou metódy slučky

Predchádzajúce dva príklady ukazujú križovatku zoznamov pomocou vstavaných funkcií. Nasledujúci príklad ukazuje križovatku zoznamov bez vstavanej funkcie. To sa dá dosiahnuť pomocou slučky. V skripte sú deklarované dva zoznamy textových údajov. The pre loop sa tu používa na zistenie bežných textových hodnôt medzi zoznam 1 a zoznam2, a ktoré sú uložené v premennej, zoznam 3 . Ďalej sa vytlačia hodnoty týchto troch premenných zoznamu.

#!/usr/bin/env python3

# Definujte zoznam1
zoznam 1= ['Farhan','Abir','Akash','Meena','Mazher']
# Definujte zoznam2
zoznam2= ['Meena',„Moyna“,„Nobelova cena“,„Bližšie“,'Abir','Farheen']
# Nájdite križovatku pomocou slučky for a výsledok uložte do zoznamu3
zoznam 3= [hodnotuprehodnotuvzoznam 1kebyhodnotuvzoznam2]

# Vytlačiť zoznam
vytlačiť(„Hodnoty zoznamu1: n',zoznam 1)
# Vytlačiť zoznam2
vytlačiť(„Hodnoty zoznamu2: n',zoznam2)
# Vytlačiť zoznam3
vytlačiť(„Hodnoty zoznamu3 po pretínaní zoznamu1 a zoznamu2: n',zoznam 3)

Výkon

Po spustení skriptu sa zobrazí nasledujúci výstup. Tu sú bežné textové hodnoty týchto dvoch zoznamov „Abir“ a „Meena.“

Príklad 4: Protínanie jednoduchých a vnorených zoznamov pomocou metódy filter ()

Nasledujúci príklad ukazuje priesečník jednoduchého zoznamu a vnoreného zoznamu. The filter () metóda a lambda funkcie sa používajú v skripte na vedenie priesečníka medzi list1 a list2. Keď zoznam obsahuje ako položky zoznamu jeden alebo viac zoznamov, zoznam sa nazýva vnorený zoznam. Tu, zoznam 1 je jednoduchý zoznam a zoznam2 je vnorený zoznam, zatiaľ čo zoznam 3 obsahuje hodnoty priesečníka zoznam 1 a zoznam2 .

#!/usr/bin/env python3

# Definujte jednoduchý zoznam
zoznam 1= [22, 8, Štyria, piati, jedenásť, 3. 4, 9, dvadsať, 7]
# Definujte vnorený zoznam
zoznam2= [[12, 9, dvadsať], [78, jedenásť, 53, 8], [2, 30, 31, Štyria, piati]]
# Vytvorte zoznam3 priesečníkom zoznamov1 a zoznam2 pomocou filtra ()
zoznam 3= [zoznam(filter(lambdan: nvzoznam 1,slist)) preslistvzoznam2]

# Vytlačiť zoznam
vytlačiť(„Hodnoty zoznamu1: n',zoznam 1)
# Vytlačiť zoznam2
vytlačiť(„Hodnoty zoznamu2: n',zoznam2)
# Vytlačiť zoznam3
vytlačiť(„Hodnoty zoznamu3 po pretínaní zoznamu1 a zoznamu2: n',zoznam 3)

Výkon

Po spustení skriptu sa zobrazí nasledujúci výstup. Premenná list2 obsahuje tri ďalšie zoznamy ako položky zoznamu. Výsledok teda ukazuje priesečník týchto troch čiastkových zoznamov zoznamu2 so zoznamom1.

Záver

Priesečník zoznamov je užitočný spôsob, ako nájsť spoločné hodnoty medzi zoznamami, ktoré obsahujú veľký počet položiek zoznamu. Metódy vykonávania priesečníka zoznamov so vstavanými funkciami a bez nich sú uvedené v tomto návode. Po prečítaní tohto článku by mal byť koncept križovatky zoznamov jasný a mali by ste byť schopní použiť križovatku zoznamu vo svojom skripte podľa postupu uvedeného v tomto návode.