Križišče
Pred začetkom te vaje bo razložen koncept križišča. Spodaj sta kot primer podana dva:
Seznam1 = [4, 7, 23, 9, 6, 11]Seznam2 = [6, 5, 1, 20, 9, 7, 4, 3]
Če je rezultat po uporabi presečišča shranjen na drugem seznamu, morda imenovanem List3, bo vseboval naslednje podatke.
Seznam3 = [4, 6, 7, 9]Grafični prikaz seznama3 je prikazan spodaj:
Primer 1: Presekavanje seznamov prek metode set ()
Naslednji primer prikazuje, kako lahko sekate dva seznama s pomočjo set () metoda in & operater. Tu sta prijavljena dva seznama, imenovana list1 in list2. Oba seznama vsebujeta številske vrednosti. Tretji seznam se ustvari s pretvorbo list1 in seznama 2 v niz prek kompleta() metoda in uporaba presečišča z uporabo & operater. Nato se natisnejo vrednosti treh seznamov.
#!/ usr / bin / env python3# Določite seznam1
seznam1 = [22, 8, 45, 11, 34, 9, 20, 7]
# Določite seznam2
seznam2 = [12, 9, 20, 78, 53, 8, 2, 30,31]
# Ustvari seznam3 s sekanjem seznama1 in seznama2
list3 = seznam (set (list1) & set (list2))
# Natisni seznam1
print ("Vrednosti seznama1: \ n", seznam1)
# Natisni seznam2
print ("Vrednosti seznama2: \ n", seznam2)
# Natisni seznam3
print ("Vrednosti seznama3 po preseku seznama1 in seznama2: \ n", seznam3)
Izhod
Po zagonu skripta se prikaže naslednji izhod. Tri vrednosti so skupne za oba seznama. Te vrednosti so 8, 9 in 20 in so prikazane v vsebini tretjega seznama.
Primer 2: Sekajoči se seznami prek metode presečišča ()
Za objekt seznama ni neposredne vgrajene metode za ugotavljanje presečišč med dvema seznamoma. Vendar ima komplet vgrajeno metodo z imenom križišče (), najti skupne vrednosti med sklopi. Funkcija po meri z imenom intersectionLists (), je opredeljen v naslednjem skriptu, da bi ugotovili skupne vrednosti med obema seznamoma. Ena omejitev tega sklopa je, da lahko vsebuje le številčne podatke. Spremenljivka seznama lahko vsebuje različne vrste podatkovnih nizov, vključno s številčnimi, logičnimi itd. V scenariju, seznam1 in seznam2 vsebujejo vse nizovne podatke, vključno z besedilom. Skript bo natisnil vse pogoste nize in številske vrednosti med seznam1 in seznam2.
#!/ usr / bin / env python3# Določite funkcijo za vrnitev presečišča dveh seznamov
def intersectLists (list1, list2):
vrnitev nabora (list1).križišče (seznam2)
# Določite seznam1
list1 = ['Pozdravljeni', '7', '8', '10', '2']
# Določite seznam2
list2 = ['8', '34', 'Pozdravljeni', '2', '21', '1', 10]
"Pokliči funkcijo po meri za shranjevanje
rezultat presečišča list1 in seznam2
na seznam3 "
list3 = intersectLists (seznam1, seznam2)
# Natisni seznam1
print ("Vrednosti seznama1: \ n", seznam1)
# Natisni seznam2
print ("Vrednosti seznama2: \ n", seznam2)
# Natisni seznam3
print ("Vrednosti seznama3 po preseku seznama1 in seznama2: \ n", seznam3)
Izhod
Po zagonu skripta se prikaže naslednji izhod. Tu so skupne vrednosti med obema seznamoma '2', '8' in 'Pozdravljeni."
Primer 3: Presekavanje seznamov prek metode zanke
Prejšnja dva primera prikazujeta presečišče seznama z uporabo vgrajenih funkcij. Naslednji primer prikazuje presečišče seznama brez vgrajene funkcije. To lahko dosežemo z uporabo zanke. V skriptu sta navedena dva seznama besedilnih podatkov. The za zanka se tukaj uporablja za iskanje skupnih besedilnih vrednosti med seznam1 in seznam2, in ki so shranjeni v spremenljivki, seznam3. Nato se natisnejo vrednosti teh treh spremenljivk s seznama.
#!/ usr / bin / env python3# Določite seznam1
list1 = ['Farhan', 'Abir', 'Akash', 'Meena', 'Mazher']
# Določite seznam2
list2 = ['Meena', 'Moyna', 'Nobel', 'Naher', 'Abir', 'Farheen']
# Z uporabo zanke poiščite križišče in rezultat shranite v seznam3
list3 = [vrednost za vrednost na seznamu1, če je vrednost na seznamu2]
# Natisni seznam1
print ("Vrednosti seznama1: \ n", seznam1)
# Natisni seznam2
print ("Vrednosti seznama2: \ n", seznam2)
# Natisni seznam3
print ("Vrednosti seznama3 po preseku seznama1 in seznama2: \ n", seznam3)
Izhod
Po zagonu skripta se prikaže naslednji izhod. Tu so skupne besedilne vrednosti obeh seznamov "Abir" in 'Meena."
Primer 4: Presekanje enostavnih in ugnezdenih seznamov prek metode filter ()
Naslednji primer prikazuje presečišče preprostega in ugnezdenega seznama. The filter () metoda in lambda funkcije se uporabljajo v skriptu za izvedbo presečišča med list1 in list2. Ko seznam vsebuje enega ali več seznamov kot elementov seznama, se seznam imenuje ugnezdeni seznam. Tukaj, seznam1 je preprost seznam in seznam2 je ugnezden seznam, medtem ko seznam3 vsebuje presečišča seznam1 in seznam2.
#!/ usr / bin / env python3# Določite preprost seznam
seznam1 = [22, 8, 45, 11, 34, 9, 20, 7]
# Določite ugnezdeni seznam
seznam2 = [[12, 9, 20], [78, 11, 53, 8], [2, 30, 31, 45]]
# Ustvari seznam3 s sekanjem seznama1 in seznama2 s pomočjo filtra ()
list3 = [seznam (filter (lambda n: n na seznamu1, seznam)) za seznam na seznamu2]
# Natisni seznam1
print ("Vrednosti seznama1: \ n", seznam1)
# Natisni seznam2
print ("Vrednosti seznama2: \ n", seznam2)
# Natisni seznam3
print ("Vrednosti seznama3 po preseku seznama1 in seznama2: \ n", seznam3)
Izhod
Po zagonu skripta se prikaže naslednji izhod. Spremenljivka list2 vsebuje tri druge sezname kot elemente seznama. Rezultat torej prikazuje presečišče med temi tremi pod-seznami list2 in list1.
Zaključek
Presečišče seznamov je koristen način za iskanje skupnih vrednosti med seznami, ki vsebujejo veliko število elementov seznama. V tej vadnici so prikazane metode za izvajanje presečišča seznamov z vgrajenimi funkcijami in brez njih. Po branju tega članka mora biti koncept presečišča seznama jasen in v svojem skriptu bi lahko uporabili presečišče seznama, tako da sledite poljubnim načinom, prikazanim v tej vadnici.