Piton

Popis križanja u Pythonu

Popis križanja u Pythonu
Mnoge objektne varijable postoje u pythonu za pohranu različitih tipova podataka. The popis je jedna od ovih varijabli i može pohraniti različite vrste podataka za različite potrebe. Ponekad za potrebe programiranja moramo pronaći zajedničke, neuobičajene ili i zajedničke i neuobičajene stavke podataka s više popisa. Python sadrži nekoliko ugrađenih funkcija i operatora koji mogu izvoditi ove vrste zadataka za Python skupove. Pronalaženje zajedničkih podataka s više popisa naziva se presijecanjem popisa, ali ne postoji operator ili ugrađena funkcija za popise poput skupova za pronalaženje zajedničkih podataka s više popisa. Ovaj vodič će vam pokazati kako presijecati popise u Pythonu.

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.

Kako razviti igru ​​na Linuxu
Prije deset godina malo je Linux korisnika predviđalo da će njihov omiljeni operativni sustav jednog dana biti popularna platforma za igranje komercij...
Luke komercijalnih igara s otvorenim kodom
Besplatne igre s otvorenim kodom i više platformi mogu se koristiti za igranje starih, kao i nekih prilično nedavnih naslova igara. U ovom će se člank...
Najbolje igre naredbenog retka za Linux
Naredbeni redak nije samo vaš najveći saveznik pri korištenju Linuxa - on također može biti izvor zabave jer ga možete koristiti za igranje mnogih zab...