Python

Zoznam križovatiek v Pythone

Zoznam križovatiek v Pythone
V pythone existuje veľa 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 potrebujeme nájsť bežné, neobvyklé alebo bežné aj neobvyklé dátové položky z viacerých zoznamov na účely programovania. Python obsahuje niekoľko vstavaných funkcií a operátorov, ktorí môžu vykonávať tieto typy úloh pre sady Python. Vyhľadanie spoločných údajov z viacerých zoznamov sa nazýva priesečník zoznamu, ale pre zoznamy, ako sú množiny, neexistuje operátor ani vstavaná funkcia na vyhľadanie bež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čatím tohto tutoriálu bude vysvetlený koncept križovatky. Ďalej sú uvedené dve ako príklad:

Zoznam1 = [4, 7, 23, 9, 6, 11]
Zoznam2 = [6, 5, 1, 20, 9, 7, 4, 3]

Ak je po použití križovatky výsledok uložený v inom zozname, ktorý môže mať názov List3, bude obsahovať nasledujúce údaje.

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

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

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

Nasledujúci príklad ukazuje, ako môžete pretínať dva zoznamy pomocou znaku sada () metóda a & operátor. Tu sú deklarované dva zoznamy, pomenované zoznam1 a zoznam2. Oba tieto zoznamy obsahujú číselné hodnoty. Tretí zoznam sa vygeneruje prevedením zoznamov 1 a 2 na množinu prostredníctvom množiny() metóda a použitie križovatky pomocou & operátor. Ďalej sa vytlačia hodnoty troch zoznamov.

#!/ usr / bin / env python3
# Definujte zoznam1
zoznam1 = [22, 8, 45, 11, 34, 9, 20, 7]
# Definujte zoznam2
zoznam2 = [12, 9, 20, 78, 53, 8, 2, 30,31]
# Vytvorte list3 pretínaním list1 a list2
list3 = zoznam (sada (zoznam1) & sada (zoznam2))
# Vytlačiť zoznam1
print ("Hodnoty zoznamu1: \ n", zoznamu1)
# Vytlačiť zoznam2
print ("Hodnoty zoznamu2: \ n", zoznam2)
# Vytlačiť zoznam3
print ("Hodnoty list3 po pretínaní list1 a list2: \ n", list3)

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: Križovanie zoznamov metódou intersection ()

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

#!/ usr / bin / env python3
 
# Definujte funkciu, ktorá vráti priesečník dvoch zoznamov
def intersectLists (zoznam1, zoznam2):
návratová sada (zoznam1).križovatka (zoznam 2)
 
# Definujte zoznam1
list1 = ['Hello', '7', '8', '10', '2']
# Definujte zoznam2
list2 = ['8', '34', 'Hello', '2', '21', '1', 10]
„Zavolajte vlastnú funkciu na uloženie
výsledok križovatky zoznamov1 a2
do zoznamu 3 "
list3 = intersectLists (zoznam1, zoznam2)
# Vytlačiť zoznam1
print ("Hodnoty zoznamu1: \ n", zoznamu1)
# Vytlačiť zoznam2
print ("Hodnoty zoznamu2: \ n", zoznam2)
# Vytlačiť zoznam3
print ("Hodnoty list3 po pretínaní list1 a list2: \ n", list3)

Výkon

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

Príklad 3: Križovanie zoznamov pomocou metódy slučky

Predchádzajúce dva príklady zobrazujú priesečník zoznamu pomocou zabudovaných funkcií. Nasledujúci príklad zobrazuje priesečník zoznamu bez akejkoľvek zabudovanej funkcie. To sa dá dosiahnuť použitím slučky. V skripte sú deklarované dva zoznamy textových údajov. The pre slučka sa tu používa na zistenie bežných textových hodnôt medzi zoznam1 a zoznam2, a ktoré sú uložené v premennej, zoznam3. Ďalej sa vytlačia hodnoty týchto troch premenných zoznamu.

#!/ usr / bin / env python3
 
# Definujte zoznam1
list1 = ['Farhan', 'Abir', 'Akash', 'Meena', 'Mazher']
# Definujte zoznam2
list2 = ['Meena', 'Moyna', 'Nobel', 'Naher', 'Abir', 'Farheen']
# Vyhľadajte križovatku pomocou cyklu for a výsledok uložte do zoznamu3
list3 = [hodnota pre hodnotu v zozname1, ak je hodnota v zozname2]
 
# Vytlačiť zoznam1
print ("Hodnoty zoznamu1: \ n", zoznamu1)
# Vytlačiť zoznam2
print ("Hodnoty zoznamu2: \ n", zoznam2)
# Vytlačiť zoznam3
print ("Hodnoty list3 po pretínaní list1 a list2: \ n", list3)

Výkon

Po spustení skriptu sa zobrazí nasledujúci výstup. Tu sú spoločné textové hodnoty oboch zoznamov 'Abir' a „Meena.„

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

Nasledujúci príklad ukazuje prienik medzi jednoduchým zoznamom a vnoreným zoznamom. The filter () metóda a lambda V skripte sa na vykonanie križovatky medzi list1 a list2 používajú tieto funkcie. Ak zoznam obsahuje jeden alebo viac zoznamov ako položky zoznamu, potom sa zoznam nazýva vnorený zoznam. Tu, zoznam1 je jednoduchý zoznam a zoznam2 je vnorený zoznam, zatiaľ čo zoznam3 obsahuje hodnoty križovatky zoznam1 a zoznam2.

#!/ usr / bin / env python3
 
# Definujte jednoduchý zoznam
zoznam1 = [22, 8, 45, 11, 34, 9, 20, 7]
# Definujte vnorený zoznam
zoznam2 = [[12, 9, 20], [78, 11, 53, 8], [2, 30, 31, 45]]
# Vytvorte list3 pretínaním list1 a list2 pomocou filter ()
list3 = [list (filter (lambda n: n v list1, slist)) pre slist v list2]
 
# Vytlačiť zoznam1
print ("Hodnoty zoznamu1: \ n", zoznamu1)
# Vytlačiť zoznam2
print ("Hodnoty list2: \ n", list2)
# Vytlačiť zoznam3
print ("Hodnoty list3 po pretínaní list1 a list2: \ n", list3)

Výkon

Po spustení skriptu sa zobrazí nasledujúci výstup. Premenná list2 obsahuje ďalšie tri zoznamy ako položky zoznamu. Výsledok teda ukazuje prienik medzi týmito tromi podzoznammi zoznamu2 a zoznamu1.

Záver

Priesečník zoznamu je užitočný spôsob, ako nájsť bežné hodnoty medzi zoznamami, ktoré obsahujú veľké množstvo položiek zoznamu. V tejto príručke sú uvedené spôsoby vykonania priesečníka zoznamov so zabudovanými funkciami alebo bez nich. Po prečítaní tohto článku by mal byť koncept križovatky zoznamov jasný a mali by ste byť schopní použiť križovatku zoznamov vo svojom skripte podľa postupu uvedeného v tomto návode.

Kurzor pri písaní v systéme Windows 10 skáče alebo sa pohybuje náhodne
Ak zistíte, že kurzor myši skáče alebo sa pohybuje sám, automaticky a náhodne pri písaní na notebooku alebo počítači so systémom Windows, niektoré z t...
Ako zmeniť smer posúvania myši a touchpadu v systéme Windows 10
Myš a TouchpadNielenže uľahčujú výpočty, ale sú aj efektívnejšie a menej časovo náročné. Nemôžeme si predstaviť život bez týchto zariadení, ale je pra...
Ako zmeniť veľkosť, farbu a schému ukazovateľa myši a kurzora v systéme Windows 10
Ukazovateľ myši a kurzor vo Windows 10 sú veľmi dôležité aspekty operačného systému. Dá sa to povedať aj pre iné operačné systémy, takže v skutočnosti...