Krajta

Seznam křižovatek v Pythonu

Seznam křižovatek v Pythonu
V Pythonu existuje mnoho objektových proměnných pro ukládání různých datových typů. The seznam je jednou z těchto proměnných a může ukládat různé typy dat pro různé potřeby. Někdy potřebujeme najít běžné, neobvyklé nebo běžné i neobvyklé datové položky z více seznamů pro účely programování. Python obsahuje několik předdefinovaných funkcí a operátorů, kteří mohou provádět tyto typy úkolů pro sady Pythonu. Nalezení společných dat z více seznamů se nazývá průnik seznamu, ale pro seznamy, jako jsou sady, neexistuje žádný operátor ani integrovaná funkce, která by nalezla běžné datové položky z více seznamů. Tento kurz vám ukáže, jak protínat seznamy v Pythonu.

Průsečík

Před zahájením tohoto kurzu bude vysvětlen koncept průniku. Níže jsou uvedeny dva jako příklad:

Seznam1 = [4, 7, 23, 9, 6, 11]
Seznam2 = [6, 5, 1, 20, 9, 7, 4, 3]

Po použití křižovatky, pokud je výsledek uložen v jiném seznamu, snad s názvem List3, bude obsahovat následující data.

List3 = [4, 6, 7, 9]

Grafické znázornění List3 je uvedeno níže:

Příklad 1: Protínající se seznamy metodou set ()

Následující příklad ukazuje, jak můžete protínat dva seznamy pomocí soubor() metoda a & operátor. Zde jsou deklarovány dva seznamy, pojmenované list1 a list2. Oba tyto seznamy obsahují číselné hodnoty. Třetí seznam je generován převedením seznamu 1 a seznamu 2 do sady prostřednictvím sady() metoda a aplikace křižovatky pomocí & operátor. Dále se vytisknou hodnoty tří seznamů.

#!/ usr / bin / env python3
# Definujte seznam 1
seznam1 = [22, 8, 45, 11, 34, 9, 20, 7]
# Definujte seznam2
list2 = [12, 9, 20, 78, 53, 8, 2, 30,31]
# Vytvořte list3 protínáním list1 a list2
list3 = list (set (list1) & set (list2))
# Tisk seznamu 1
print ("Hodnoty seznamu1: \ n", seznam1)
# Vytisknout seznam2
print ("Hodnoty seznamu2: \ n", seznam2)
# Vytisknout seznam3
print ("Hodnoty list3 po protnutí list1 a list2: \ n", list3)

Výstup

Po spuštění skriptu se zobrazí následující výstup. Pro oba seznamy jsou společné tři hodnoty. Tyto hodnoty jsou 8, 9 a 20 a jsou uvedeny v obsahu třetího seznamu.

Příklad 2: Průnik seznamů metodou intersection ()

Pro objekt seznamu neexistuje žádná přímá integrovaná metoda pro zjištění hodnot průniku mezi dvěma seznamy. Sada má však vestavěnou metodu s názvem průsečík(), zjistit společné hodnoty mezi sadami. Vlastní funkce s názvem intersectionLists (), je definován v následujícím skriptu pro zjištění společných hodnot mezi těmito dvěma seznamy. Jedním omezením této sady je, že může obsahovat pouze číselná data. Proměnná seznamu může obsahovat různé typy datových řetězců, včetně číselných, booleovských atd. Ve scénáři, seznam1 a seznam2 obsahovat všechna data řetězce včetně a textu. Skript vytiskne všechny běžné řetězce a číselné hodnoty mezi nimi seznam1 a seznam2.

#!/ usr / bin / env python3
 
# Definujte funkci, která vrátí průnik dvou seznamů
def intersectLists (list1, list2):
návratová sada (seznam1).křižovatka (list2)
 
# Definujte seznam 1
list1 = ['Hello', '7', '8', '10', '2']
# Definujte seznam2
list2 = ['8', '34', 'Hello', '2', '21', '1', 10]
"Zavolejte vlastní funkci pro uložení
výsledek průsečíku list1 a list2
do list3 "
list3 = intersectLists (seznam1, seznam2)
# Tisk seznamu 1
print ("Hodnoty seznamu1: \ n", seznam1)
# Vytisknout seznam2
print ("Hodnoty seznamu2: \ n", seznam2)
# Vytisknout seznam3
print ("Hodnoty list3 po protnutí list1 a list2: \ n", list3)

Výstup

Po spuštění skriptu se zobrazí následující výstup. Zde jsou běžné hodnoty mezi dvěma seznamy '2', '8' a 'Hello.''

Příklad 3: Protínající se seznamy metodou smyčky

Předchozí dva příklady ukazují průnik seznamu pomocí vestavěných funkcí. Následující příklad ukazuje průnik seznamu bez jakékoli vestavěné funkce. Toho lze dosáhnout pomocí smyčky. Ve skriptu jsou deklarovány dva seznamy textových dat. The pro smyčka se zde používá k vyhledání běžných textových hodnot mezi seznam1 a seznam2, a které jsou uloženy v proměnné, seznam3. Dále se vytisknou hodnoty těchto tří proměnných seznamu.

#!/ usr / bin / env python3
 
# Definujte seznam 1
list1 = ['Farhan', 'Abir', 'Akash', 'Meena', 'Mazher']
# Definujte seznam2
list2 = ['Meena', 'Moyna', 'Nobel', 'Naher', 'Abir', 'Farheen']
# Najděte průnik pomocí smyčky for a výsledek uložte do seznamu3
list3 = [hodnota pro hodnotu v seznamu1, pokud je hodnota v seznamu2]
 
# Tisk seznamu 1
print ("Hodnoty seznamu1: \ n", seznam1)
# Vytisknout seznam2
print ("Hodnoty seznamu2: \ n", seznam2)
# Vytisknout seznam3
print ("Hodnoty list3 po protnutí list1 a list2: \ n", list3)

Výstup

Po spuštění skriptu se zobrazí následující výstup. Zde jsou společné textové hodnoty obou seznamů 'Abir' a „Meeno.''

Příklad 4: Protínající jednoduché a vnořené seznamy pomocí metody filter ()

Následující příklad ukazuje průnik mezi jednoduchým seznamem a vnořeným seznamem. The filtr() metoda a lambda funkce se ve skriptu používají k provedení průniku mezi list1 a list2. Pokud seznam obsahuje jeden nebo více seznamů jako položky seznamu, pak se tento seznam nazývá vnořený seznam. Tady, seznam1 je jednoduchý seznam a seznam2 je vnořený seznam, zatímco seznam3 obsahuje hodnoty průniku z seznam1 a seznam2.

#!/ usr / bin / env python3
 
# Definujte jednoduchý seznam
seznam1 = [22, 8, 45, 11, 34, 9, 20, 7]
# Definujte vnořený seznam
list2 = [[12, 9, 20], [78, 11, 53, 8], [2, 30, 31, 45]]
# Vytvořte list3 protínáním list1 a list2 pomocí filter ()
list3 = [list (filtr (lambda n: n v list1, slist)) pro slist v list2]
 
# Tisk seznamu 1
print ("Hodnoty seznamu1: \ n", seznam1)
# Vytisknout seznam2
print ("Hodnoty seznamu2: \ n", seznam2)
# Vytisknout seznam3
print ("Hodnoty list3 po protnutí list1 a list2: \ n", list3)

Výstup

Po spuštění skriptu se zobrazí následující výstup. Proměnná list2 obsahuje tři další seznamy jako položky seznamu. Výsledek tedy ukazuje průnik mezi těmito třemi dílčími seznamy seznamu2 se seznamem1.

Závěr

Průsečík seznamu je užitečný způsob, jak najít běžné hodnoty mezi seznamy, které obsahují velké množství položek seznamu. V tomto výukovém programu jsou uvedeny metody pro provádění průsečíků seznamů s integrovanými funkcemi a bez nich. Po přečtení tohoto článku by měl být koncept křižovatky seznamů jasný a měli byste být schopni použít křižovatku seznamů ve vašem skriptu tak, že budete postupovat jakýmkoli způsobem uvedeným v tomto kurzu.

Hry Jak vyvíjet hru na Linuxu
Jak vyvíjet hru na Linuxu
Před deseti lety by jen málo uživatelů Linuxu předpovídalo, že jejich oblíbený operační systém bude jednoho dne populární herní platformou pro komerčn...
Hry Porty komerčních her s otevřeným zdrojovým kódem
Porty komerčních her s otevřeným zdrojovým kódem
Zdarma, s otevřeným zdrojovým kódem a multiplatformní herní enginy lze hrát staré i některé z poměrně nedávných herních titulů. Tento článek uvede sez...
Hry Nejlepší hry z příkazového řádku pro Linux
Nejlepší hry z příkazového řádku pro Linux
Příkazový řádek není při používání Linuxu jen vaším největším spojencem - může být také zdrojem zábavy, protože jej můžete použít k hraní mnoha zábavn...