V tomto návode budeme diskutovať o tom, ako môžeme získať priesečník týchto dvoch zoznamov. Priesečník dvoch zoznamov znamená, že musíme dostať všetky známe prvky do oboch počiatočných zoznamov.
Python je známy svojou vynikajúcou vstavanou dátovou štruktúrou. Zoznam Python je jedným zo slávnych a cenných vstavaných dátových typov Pythonu. Môže ukladať hodnoty rôznych typov údajov v zoradenom poradí. Neexistuje však žiadna vstavaná funkcia pre zoznamy, ako sú množiny.
ako skontrolovať veľkosť obrazovky
Python poskytuje mnoho spôsobov, ako vykonať priesečník zoznamov. Pozrime sa na nasledujúci scenár.
Vstup:
list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26]
Výkon:
[90, 11, 58, 31, 66, 28, 54]
Vstup:
list1 = [4, 9, 1, 17, 11, 26, 28, 54, 69] list2 = [9, 9, 74, 21, 45, 11, 63, 28, 26]
Výkon:
[9, 11, 26, 28]
Pozrime sa na nasledujúce metódy na získanie priesečníka dvoch zoznamov.
Metóda - 1: Použitie cyklu for
# Python program to get the intersection # of two lists in most simple way def intersection_list(list1, list2): list3 = [value for value in list1 if value in list2] return list3 # Driver Code list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection_list(list1, list2))
Výkon:
[90, 11, 58, 31, 66, 28, 54]
Na získanie spoločnej hodnoty z oboch zoznamov sme použili cyklus for a uložili sme ju do premennej list3.
Metóda - 2: Previesť zoznam na Set
def intersection_list(list1, list2): return list(set(list1) & set(list2)) list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection_list(list1, list2))
Výkon:
[66, 90, 11, 54, 58, 28, 31]
Metóda - 3:
Použijeme vstavané súpravy križovatka() metóda. The križovatka() je prvotriednou súčasťou súpravy. Poďme pochopiť nasledujúci príklad.
Príklad -
zlúčiť triediť
# Python program to get the intersection # of two lists using set() and intersection() def intersection_list(list1, list2): return set(list1).intersection(list2) list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection_list(list1, list2))
Výkon:
{66, 90, 11, 54, 58, 28, 31}
Metóda - 4:
V tejto metóde použijeme hybridnú metódu. Toto je veľmi efektívny spôsob vykonávania úlohy. Poďme pochopiť nasledujúci príklad.
Príklad -
# Python program to get the intersection # of two lists def intersection(list1, list2): # Use of hybrid method temp = set(list2) list3 = [value for value in list1 if value in temp] return list3 list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection(list1, list2))
Výkon:
[90, 11, 58, 31, 66, 28, 54]
Metóda - 5:
Pri tejto metóde použijeme filter() metóda. Prienik sa vykonáva cez podzoznamy v iných zoznamoch. Poďme pochopiť nasledujúci príklad.
Príklad -
# Python program togetthe intersection # of two lists, sublists and use of filter() def intersection_list(list1, list2): list3 = [list(filter(lambda x: x in list1, sublist)) for sublist in list2] return list3 list1 = [10, 9, 17, 40, 23, 18, 56, 49, 58, 60] list2 = [[25, 17, 23, 40, 32], [1, 10, 13, 27, 28], [60, 55, 61, 78, 15, 76]] print(intersection_list(list1, list2))
Výkon:
[[17, 23, 40], [10], [60]]
The filter() metóda vezme každú položku podzoznamu a skontroluje, či je prítomná v zozname1. Porozumenie zoznamu sa vykoná pre každý podzoznam v zozname2.