GNU/Linux >> Znalost Linux >  >> Linux

Jak používat sady v Pythonu

Naučte se používat sady v Pythonu jako vstupní bod pro studenty Pythonu a programátory Pythonu, aby se naučili a/nebo kódovali pokročilejší koncepty, jako jsou funkce Lambda, Map Reduce, Java Collections API a rozhraní kolekcí Pythonu.

Tento tutoriál se podívá na několik každodenních případů použití nastavené datové struktury v programovacím jazyce Python s příklady, které vám pomohou lépe porozumět konceptům.

Chcete-li začít, čtěte dále!

Předpoklady

Tento tutoriál bude praktickou ukázkou. Pokud je chcete sledovat, ujistěte se, že máte následující:

  • Nainstalováno prostředí Python v3 nebo novější.
  • Editor kódu pro spouštění kódu Python, jako je VS Code.

Vytvoření prvních sad v Pythonu

V Pythonu jsou dvě datové struktury seznamy, což jsou uspořádané kolekce proměnných dat, a slovníky, které ukládají data v párech klíč-hodnota. Proměnlivý znamená, že data lze po jejich vytvoření změnit. Nastaví sdílené charakteristiky seznamů i slovníků. Stejně jako seznamy jsou sady měnitelné kolekce jednotlivých prvků.

Na rozdíl od seznamů nemají sady žádný index, protože nejsou sekvencí, díky čemuž jsou sady více podobné slovníkům, které jsou také neuspořádanými kolekcemi. Python vysoce optimalizuje sady i slovníky pro operace vyhledávání, čímž zvyšuje rychlost.

Můžete vyhledat klíč a získat hodnotu ve slovníku, například najít něčí jméno a poté získat jeho telefonní číslo, když se podíváte do adresáře. Sady však páry klíč–hodnota neobsahují. Místo toho vyhledáte prvek v sadách a zkontrolujete, zda v sadě existuje nebo neexistuje. Tento koncept se nazývá testování členství.

Chcete-li se naučit, je čas vytvořit sadu! Sadu vytvoříte přidáním prvků do sady. Pojďme si ušpinit ruce!

1. Spusťte interaktivní relaci Pythonu v terminálu.

2. Jakmile je vaše relace v Pythonu připravena, vytvořte sadu voláním set() a předejte libovolný typ dat, která chcete přidat. Zkopírujte a vložte níže uvedený kód do relace Pythonu a stiskněte Enter vytvořit svou první sadu. Deklarujete my_firs_set variabilní, s nastaveným doslovným:složené závorky. ATA, Hello World řetězec je prvním a jediným prvkem.

my_first_set = {'ATA, Hello World'}

3. Spuštěním příkazu níže zavolejte svou první sadu a zkontrolujte, zda vytváří sadu.

my_first_set

Získáte řetězec ATA, Hello World na oplátku, jak je uvedeno níže.

4. Můžete znovu zkontrolovat my_first_set je sada pomocí type() k získání datového typu my_first_set . Spuštěním níže uvedeného kódu získáte typ dat.

type(my_first_set)

Získáte výstup uvedený níže. Výstup potvrzuje my_first_set je sada.

5. Protože sada je kolekce, má vestavěnou funkci délky:len() . Spuštěním níže uvedeného kódu získáte délku sady.

len(my_first_set)

Na oplátku získáte 1, jak je ukázáno níže, protože sada obsahuje pouze jeden prvek. Sada obsahující přesně jeden prvek se také nazývá singletonová sada.

Vysvětlení vlastností definujících sady

Sada má dvě definující vlastnosti, obě uvidíte dále. Nikdo nemá rád spoilery, čtěte dále, abyste mohli začít kódovat a dozvědět se o těchto vlastnostech.

Vytvořte nový soubor s názvem set_comparison.py a zkopírujte a vložte do něj níže uvedený kód.

# You will make a couple of sets. The first set is {1, 2, 3}, 
# the second set has the same numbers in a different order {3, 2, 1}.
# You'll use a double equal sign == to compare the sets. # And you'll use a print statement to print out the result of this comparison.
print({1, 2, 3} == {3, 2, 1})

Spusťte níže uvedený příkaz ve svém IDE a spusťte soubor set_comparison.py skript a vytiskněte výstup porovnání.

python set_comparison.py

Získáte pravdu jako výstup, jak je ukázáno níže:Python vyhodnotil tyto dvě sady a považoval je za rovnocenné. Jsou stejně dlouhé a obsahují navzájem úplně stejné prvky.

Když je prvek v sadě, je zaručeno, že je jedinečný od ostatních prvků. Konkrétně řečeno, množina je matematický objekt, který sleduje všechny odlišné hodnoty v dané kolekci nebo řetězci.

1️⃣ Množiny Pythonu nejsou sekvence:na pořadí prvků v sadě nezáleží. Sady jsou neuspořádané.

Dále se dozvíte, jak sady zacházejí s duplicitními hodnotami. Vytvořte nový soubor s názvem set_integer_number.py , zkopírujte a vložte řádek níže. Každý člen tohoto množinového literálu bude celé číslo oddělené čárkami a některá z těchto celých čísel se budou opakovat v žádném konkrétním pořadí.


print({1, 2, 3, 2, 3, 4, 3, 4, 4, 4})

Spusťte níže uvedený příkaz a vytiskněte členy sady.

python set_integer_number.py

Získáte výstup jako ten níže, kde můžete vidět, že set_integer_number obsahuje pouze jedinečné hodnoty 1 , 2 , 3 a 4 . I když jsi je skoro všechny zopakoval. Když Python vyhodnotí a zkonstruuje a vytiskne skutečnou sadu, máte v sadě pouze čtyři členy.

Když je prvek v sadě, je zaručeno, že je jedinečný od ostatních prvků. Konkrétně řečeno, množina je matematický objekt, který sleduje všechny odlišné hodnoty v dané kolekci nebo řetězci.

2️⃣ Sady Pythonu neobsahují duplicitní data:neexistují žádné duplicitní hodnoty. Členové se od sebe jedinečně liší.

Chcete-li zkontrolovat, zda jsou uloženy duplicitní hodnoty, vytiskněte si délku této sady pomocí len() metoda. Odstraňte předchozí obsah z set_integer_number.py a zkopírujte a vložte řádek níže do set_integer_number.py soubor.

print(len({1, 2, 3, 2, 3, 4, 3, 4, 4, 4}))

Spusťte níže uvedený příkaz a vytiskněte délku sady.

python set_integer_number.py

Získáte číslo 4 ve výstupu, jak je uvedeno níže, což znamená, že v sadě jsou pouze čtyři členy.

Porovnejte tyto vlastnosti se skutečným příkladem množiny. Sada ovoce:jablka, banány, pomeranče, citrony a limetky. Na pořadí plodů nezáleží. Pokud změníte pořadí seznamu, nic se nezmění. Stále máte stejný seznam ovoce. Jablka nejsou o nic důležitější než banány nebo citrony.

Všechny plody jsou jedinečné a výrazně se od sebe liší. Pokud vás někdo požádá, abyste vyjmenovali pět druhů ovoce, neřekli byste pětkrát banány:jednou stačí. Vzhledem k tomu, že banány jsou již v sadě, jejich opětovné přidání by sadu nemělo změnit.

Přidání prvků do sady Python

V předchozí části jste se naučili, jak vytvořit novou sadu Pythonu. V této části se naučíte, jak manipulovat se sadami Pythonu. První je přidávání prvků do sady.

Sady Pythonu jsou proměnlivé, což znamená, že data v sadě lze po vytvoření sady změnit.

Existují dva způsoby přidávání prvků do sady. add() metoda přidává jeden prvek, zatímco update() metoda přidává více než jeden prvek.

Vytvořte nový soubor s názvem set_vowels.py , zkopírujte a vložte níže uvedený kód do souboru.

# You'll declare a new variable vowels and assign it as an empty set.
vowels = set()
#Use the add() method to add one element to the set. 
# Let's add A, which was the first vowel.
vowels.add('A')
#Print the new set with the added element.
print(vowels)

Spuštěním níže uvedeného kódu zkontrolujte, zda přidáváte prvky do sady.

python set_vowels.py

Získáte výstup podobný tomu níže. Všimněte si, že se vytiskne „A ‘ při tisku set_vowels obsah, což znamená, že „A“ je členem set_vowels .

Nyní namísto přidávání zbývajících samohlásek po jedné je čas přidat je všechny společně pomocí metody aktualizace.

Zkopírujte a vložte řádek níže do souboru set_vowels.py soubor. Použijete iterovatelný typ, což je řetězec:U , E , O a . Metoda aktualizace projde každý prvek jeden po druhém, takže řetězec bude iterovatelný, a přidá každý prvek do sady.

vowels.update('U, E, O, I')

Spusťte níže uvedený kód a zkontrolujte, zda sada obsahuje všechny čtyři nově přidané samohlásky.

python set_vowels.py

Získáte výstup uvedený níže. Můžete vidět, že přidává všechny samohlásky do sady.

Pořadí není pro tyto řetězcové datové typy deterministické. Takže pokud vaše samohlásky vyjdou v jiném pořadí, je to v pořádku; funguje tak, jak má.

Odebrání prvků ze sady Python

V předchozí části jste se naučili přidávat prvky do sady. V této části se dozvíte, jak odstranit prvky ze sady.

Existují čtyři způsoby odstranění prvku ze sady Pythonu:

  • clear()
  • remove()
  • discard()
  • pop()

Pojďme na každou metodu jednu po druhé. Příklady se budou opírat o samohlásky nastavené z předchozí části. Místo původní sady vytvoříte kopii, aby to neovlivnilo původní sadu.

copy() metoda vytvoří kopii sady. Například zkopírujte a vložte řádky níže do souboru set_vowels.py soubor vytvořit kopii pro každou metodu odstranění.

clear_method = vowels.copy()
remove_method = vowels.copy()
discard_method = vowels.copy()
clear_method = vowels.copy()

Naučení se jasné metody

První metoda je clear() metoda, jejíž syntaxe je set.clear() . Tato metoda nebere žádný argument.

Zkopírujte a vložte řádky níže do souboru set_vowels.py pro vyvolání clear() a vytiskněte clear_method set

clear_method.clear()
print(clear_method)

Spusťte níže uvedený kód a získáte vytištěnou prázdnou sadu, jak je uvedeno níže. clear() metoda odstranila všechny prvky ze sady.

python set_vowels.py

Použití metody odebrání

Nyní přejděte na remove() metoda. Tato metoda přebírá jeden argument, což je prvek, který chcete odstranit ze sady. Syntaxe pro remove() metoda je set.remove(element) . Tuto metodu použijete ve svém kódu níže.

remove_method = vowels.copy()
# Rmove the letter A.
remove_method.remove('A')
print(remove_method)

Spuštěním níže uvedeného kódu zkontrolujte, zda je odstraněno písmeno A z remove_method set.

python set_vowels.py

Získáte výstup, jak je znázorněno níže. Můžete vidět, že A již není součástí sady.

Pokud se pokusíte odstranit prvek, který v sadě neexistuje, zobrazí se klíčová chyba. Vyvoláme remove() metoda s prvkem, který není členem množiny, písmeno B.

remove_method = vowels.copy()
remove_method.remove('B')
print(remove_method)

Spusťte znovu set_vowels.py, a dostanete výstup zobrazující chybu, jako je ta níže.

Odebrání prvků metodou vyřazení

Třetí metodou je discard() metoda. Tato metoda vyžaduje jeden argument, což je prvek, který chcete odstranit ze sady.

Rozdíl mezi remove() a discard() je, že pokud prvek neexistuje, metoda discard() nevyvolá chybu. Tato metoda zabrání vyvolání KeyError a můžete zavolat discard() tolikrát, kolikrát chcete.

Syntaxe discard() metoda je set.discard(element) . Ještě jednou zkopírujte a vložte níže uvedený kód. Zahodíte B písmeno, které není členem sady, a tentokrát Python nevyvolá chybu.

discard_method = vowels.copy()
discard_method.discard('B')
print(discard_method)

Spusťte set_vowels.py znovu a uvidíte, co se stane.

python set_vowels.py

Získáte výstup podobný tomu, který je zobrazen níže. Vidíte, že se nejedná o žádnou chybu.

Vyjímání prvků metodou pop

Poslední metodou je pop() metoda. Tato metoda nebere žádný argument, odebere náhodný prvek ze sady a vrátí odstraněný prvek. Syntaxe metody pop() je set.pop() .

Zkopírujte a vložte níže uvedený kód pro vyvolání pop() metodu a vytiskněte odstraněný prvek.

pop_method = vowels.copy()
vowel = pop_method.pop()
print(vowel)
print(pop_method)

Spusťte set_vowels.py, a získáte výstup podobný tomu, který je zobrazen níže. Původní sada samohlásek má v sobě pět samohlásek. Vaše pop_method set má čtyři samohlásky:metoda odstraní a vrátí samohlásku O .

Od pop() odstraní náhodný prvek, mohli jste získat jiný výsledek. Spusťte kód několikrát a všimnete si náhodnosti při hře.

Závěr

Nyní byste měli lépe porozumět sadám Pythonu a metodice potřebné k vytváření, odstraňování nebo přidávání prvků do sad. Jako další krok proč neprozkoumat operace množin a množiny vs. seznamy?


Linux
  1. Jak používat Nginx k přesměrování

  2. Jak používat typ souboru ve Vimu?

  3. Jak používat Python k dotazování WMI (Linux – Windows)

  1. Jak používat BusyBox na Linuxu

  2. Jak používat export s Pythonem na Linuxu

  3. Jak mohu nastavit 'backend' v matplotlib v Pythonu?

  1. Jak nainstalovat Python na Linux

  2. Jak používám cron v Linuxu

  3. Jak používat Ansible k nastavení monitorování systému pomocí Prometheus