Križanje
Prije početka ovog vodiča objasnit će se pojam presijecanja. Ispod su navedena dva primjera:
Popis1 = [4, 7, 23, 9, 6, 11]Popis2 = [6, 5, 1, 20, 9, 7, 4, 3]
Nakon primjene presjeka, ako je rezultat pohranjen na drugi popis, možda nazvan List3, tada će sadržavati sljedeće podatke.
Popis3 = [4, 6, 7, 9]Grafički prikaz List3 prikazan je u nastavku:
Primjer 1: Presijecanje popisa metodom set ()
Sljedeći primjer pokazuje kako možete presijecati dva popisa pomoću postavi () metoda i & operater. Ovdje su deklarirana dva popisa, nazvana list1 i list2. Oba ova popisa sadrže numeričke vrijednosti. Treći se popis generira pretvaranjem liste1 i popisa 2 u skup putem skupa() metoda i primjena presjeka pomoću & operater. Zatim se ispisuju vrijednosti triju popisa.
#!/ usr / bin / env python3# Definirajte popis1
popis1 = [22, 8, 45, 11, 34, 9, 20, 7]
# Definirajte popis2
popis2 = [12, 9, 20, 78, 53, 8, 2, 30,31]
# Stvorite popis3 presijecanjem popisa1 i popisa2
list3 = popis (set (list1) & set (list2))
# Ispis popisa1
print ("Vrijednosti popisa1: \ n", popis1)
# Ispis popisa2
print ("Vrijednosti popisa2: \ n", popis2)
# Ispis popisa3
print ("Vrijednosti popisa3 nakon presijecanja popisa1 i popisa2: \ n", popis3)
Izlaz
Sljedeći će se izlaz pojaviti nakon pokretanja skripte. Tri su vrijednosti zajedničke za oba popisa. Te su vrijednosti 8, 9 i 20 i prikazane su u sadržaju trećeg popisa.
Primjer 2: Presijecanje popisa metodom presjeka ()
Ne postoji izravna, ugrađena metoda za objekt popisa za otkrivanje presječnih vrijednosti između dva popisa. Međutim, set ima ugrađenu metodu, nazvanu križanje(), kako bi se utvrdile zajedničke vrijednosti između skupova. Prilagođena funkcija, nazvana intersectionLists (), definiran je u sljedećoj skripti kako bi se saznale zajedničke vrijednosti između dva popisa. Jedno ograničenje ovog skupa je da može sadržavati samo numeričke podatke. Varijabla popisa može sadržavati razne vrste niza podataka, uključujući numeričke, logičke itd. U scenariju, popis1 i popis2 sadrže sve niz podataka uključujući i tekst. Skripta će ispisati sve uobičajene niz i numeričke vrijednosti između popis1 i popis2.
#!/ usr / bin / env python3# Definirajte funkciju za vraćanje presjeka dvaju popisa
def intersectLists (list1, list2):
povratni set (list1).raskrižje (popis2)
# Definirajte popis1
list1 = ['Pozdrav', '7', '8', '10', '2']
# Definirajte popis2
list2 = ['8', '34', 'Pozdrav', '2', '21', '1', 10]
"Pozovite prilagođenu funkciju za pohranu
rezultat presijecanja popisa1 i popisa2
na popis3 "
list3 = intersectLists (list1, list2)
# Ispis popisa1
print ("Vrijednosti popisa1: \ n", popis1)
# Ispis popisa2
print ("Vrijednosti popisa2: \ n", popis2)
# Ispis popisa3
ispis ("Vrijednosti popisa3 nakon presijecanja popisa1 i popisa2: \ n", popis3)
Izlaz
Sljedeći će se izlaz pojaviti nakon pokretanja skripte. Ovdje su uobičajene vrijednosti između dva popisa '2', '8' i 'Pozdrav.'
Primjer 3: Presijecanje popisa metodom petlje
Prethodna dva primjera prikazuju presjek popisa pomoću ugrađenih funkcija. Sljedeći primjer prikazuje presijecanje popisa bez ugrađene funkcije. To se može postići korištenjem petlje. U skripti su navedena dva popisa tekstualnih podataka. The za petlja se ovdje koristi za pronalaženje uobičajenih tekstualnih vrijednosti između popis1 i popis2, a koji su pohranjeni u varijabli, popis3. Zatim se ispisuju vrijednosti ove tri varijable popisa.
#!/ usr / bin / env python3# Definirajte popis1
list1 = ['Farhan', 'Abir', 'Akash', 'Meena', 'Mazher']
# Definirajte popis2
list2 = ['Meena', 'Moyna', 'Nobel', 'Naher', 'Abir', 'Farheen']
# Pronađite raskrižje pomoću petlje for i pohranite rezultat na list3
list3 = [vrijednost za vrijednost na listi1 ako je vrijednost na listi2]
# Ispis popisa1
print ("Vrijednosti popisa1: \ n", popis1)
# Ispis popisa2
print ("Vrijednosti popisa2: \ n", popis2)
# Ispis popisa3
ispis ("Vrijednosti popisa3 nakon presijecanja popisa1 i popisa2: \ n", popis3)
Izlaz
Sljedeći će se izlaz pojaviti nakon pokretanja skripte. Ovdje su uobičajene tekstualne vrijednosti dvaju popisa 'Abir' i »Meena.'
Primjer 4: Presijecanje jednostavnih i ugniježđenih popisa pomoću metode filter ()
Sljedeći primjer pokazuje presjek između jednostavnog popisa i ugniježđenog popisa. The filtar() metoda i lambda funkcije koriste se u skripti za provođenje presjeka između popisa1 i popisa2. Kada popis sadrži jedan ili više popisa kao stavke popisa, tada se popis naziva ugniježđenim popisom. Ovdje, popis1 je jednostavan popis i popis2 je ugniježđeni popis, dok popis3 sadrži presječne vrijednosti popis1 i popis2.
#!/ usr / bin / env python3# Definirajte jednostavan popis
popis1 = [22, 8, 45, 11, 34, 9, 20, 7]
# Definirajte ugniježđeni popis
popis2 = [[12, 9, 20], [78, 11, 53, 8], [2, 30, 31, 45]]
# Stvaranje popisa3 presijecanjem popisa1 i popisa2 pomoću filtra ()
list3 = [lista (filtar (lambda n: n na listi1, lista)) za listu na listi2]
# Ispis popisa1
print ("Vrijednosti popisa1: \ n", popis1)
# Ispis popisa2
print ("Vrijednosti popisa2: \ n", popis2)
# Ispis popisa3
ispis ("Vrijednosti popisa3 nakon presijecanja popisa1 i popisa2: \ n", popis3)
Izlaz
Sljedeći će se izlaz pojaviti nakon pokretanja skripte. Varijabla list2 sadrži tri druga popisa kao stavke popisa. Dakle, rezultat pokazuje presjek između ova tri pod-popisa list2 i list1.
Zaključak
Sjecište popisa koristan je način pronalaženja zajedničkih vrijednosti između popisa koji sadrže velik broj stavki popisa. Metode izvođenja presijecanja popisa sa i bez ugrađenih funkcija prikazane su u ovom vodiču. Nakon čitanja ovog članka, koncept presjeka popisa trebao bi biti jasan i trebali biste moći primijeniti presijecanje popisa u svojoj skripti slijedeći bilo koji način prikazan u ovom vodiču.