Sada Python je jedinečný literál pro filtrování odlišných hodnot v seznamu nebo v poli položek. Na rozdíl od seznamu, slovníku nebo n-tice Pythonu nepřijímá duplikáty. Může to tedy být cenný nástroj pro čištění dat.

Jak ale můžete vytvořit sadu a použít ji v Pythonu? Vysvětlíme to v tomto příspěvku.

Vlastnosti sad Python

Kromě nepřijímání duplikátů má množina literálu další vlastnosti, které ji odlišují od jiných datových typů. Zde jsou některé z jeho funkcí:

  • Je to neměnné: to znamená, že nemůžete změnit hodnoty sady, jakmile ji vytvoříte.
  • Nastavený literál vrací dynamické uspořádání při každém vytvoření. V podstatě jsou položky v sadě neuspořádané.
  • Protože představuje neuspořádané položky, na rozdíl od literálů seznamu a slovníku nemůžete získat hodnoty sady podle jejich indexů.

Jak vytvořit a používat sadu Python

Nyní, když znáte základní funkce sady Python. Podívejme se na některé způsoby, jak jej můžete použít ve svém programu.

K vytvoření sady v Pythonu použijete složené závorky. Sada je tedy seznam položek ve složených závorkách oddělených čárkami:

mySet = {1, 2, "MUO", "Google"}
tisk (mySet)
Výstup: {1, 2, „MUO“, „Google“}

Můžete také převést jakýkoli jiný datový typ na sadu. Níže uvedený kód například převede seznam na sadu:

myList = [1, 2, "MUO", "Google"]
mySet = set (myList)
tisk (mySet)
Výstup: {1, 2, „MUO“, „Google“}

Pro jistotu můžete zkontrolovat datový typ mySet:

myList = [1, 2, "MUO", "Google"]
mySet = set (myList)
tisk (typ (mySet))
Výstup:

Jak jsme zmínili dříve, sada nepřijímá duplikáty. Tato funkce může být užitečná, když chcete pole vyčistit odstraněním duplicitních hodnot.

Níže uvedený kód odstraní duplikáty ze seznamu a zobrazí výstup jako sadu Pythonu:

myList = [1, 2, 2 "MUO", "MUO", "Google", "Google"]
mySet = set (myList)
tisk (mySet)
Výstup: {1, 2, 'MUO', 'Google'}

Chcete-li dále demonstrovat funkci filtrování sady, při tisku délky sady se nepočítají duplicitní hodnoty:

mySet = {1, 2, 2, "MUO", "MUO", "Google", "Google"}
print (len (mySet))
Výstup: 4

Chcete-li vidět lepší případ použití sady, odstraňte duplikáty v následujícím poli. Je to jako dotazovat se na jedinečné klíče v poli.

Chcete-li to provést, převeďte slovník na sadu:

myDiction = {
„Mango“: 2, „Orange“: 2, „mrkev“: 2, „MUO“: „tech“,
"MUO": "web", "Google": "vyhledávání", "Google": "motor"
}
uniqueSet = set (myDiction)
print ("Toto jsou jedinečné klíče: {}". format (uniqueSet))
Výstup: Jedná se o jedinečné klíče: {'Google', 'Mango', 'MUO', 'Orange', 'carrot'}

Výše uvedený převod automaticky odstraní duplikované položky z pole.

Výše uvedený kód můžete upravit pomocí smyčky for aby bylo jasnější:

pro unikáty v uniqueSet:
tisk (unikáty)

Můžete také spojit dvě sady s unie() metoda:

setA = {1, 3, 5}
setB = {1, 4, 6}
newSet = setA.union (setB)
tisk (newSet)
Výstup: {1, 3, 4, 5, 6}

Výše uvedený kód však spojí dvě sady a odstraní duplicitní hodnoty.

Alternativně můžete použít trubku | funkce pro spojení sad v Pythonu:

setA = {1, 3, 5}
setB = {1, 4, 6}
newSet = setA | setB
tisk (newSet)
Výstup: {1, 3, 4, 5, 6}

Rozdíl mezi dvěma sadami najdete také v Pythonu:

setA = {1, 3, 5}
setB = {2, 4, 5,}
tisk (setA.difference (setB))
Výstup: {1, 3}

Můžete najít symetrický rozdíl mezi množinami A a B. Tato metoda vrací položky v jedné sadě, ale vylučuje jejich průniky. Podívejme se, jak to funguje:

setA = {1, 3, 5}
setB = {2, 4, 5,}
tisk (setA ^ setB)
Výstup: {1, 2, 3, 4}

Případně můžete použít symmetric_difference () metoda:

setA = {1, 3, 5}
setB = {2, 4, 5,}
print (setA.symmetric_difference (setB))
Výstup: {1, 2, 3, 4}

Podívejme se také, jak níže najdete průnik množin:

setA = {1, 3, 5}
setB = {1, 4, 6}
setC = {1, 5, 4}
newSet = setA.intersection (setB, setC)
tisk (newSet)
Výstup: {1}

Zatímco můžete připojit k seznamu v Pythonu, nemůžete udělat totéž pro sadu Python. Položku však můžete přidat na konec sady pomocí přidat funkce.

Ale Python přidat funkce přijímá jeden argument, takže do sady můžete přidat pouze n-tici. Tím se vrátí vnořená sada:

setA = {1, 3, 5} setC = {1, 3}
newSet = 1, 6
setC.add (newSet)
tisk (setC)
Výstup: {1, (1, 6), 3}

Sada Python používá isdisjoint () metoda pro kontrolu, zda jsou dvě sady nesouvislé. Poté vrátí logickou hodnotu:

setA = {1, 3, 5}
setB = {1, 4, 6}
findDisjoint = setA.isdisjoint (setB)
print ("Je {} že setA je disjunkt B" .format (findDisjoint))
Výstup: Je nepravda, že setA je disjunkt B

Chcete-li zkontrolovat, zda je sada podmnožinou jiné, nahraďte ji isdisjoint () s issubset ():

findSubset = setA.issubset (setB)

Prvek můžete odebrat ze sady:

setA = {1, 3, 5}
setA. odebrat (5)
tisk (setA)
Výstup: {1, 3}

The Průhledná() metoda vymaže prvky v sadě a vrátí prázdnou sadu:

setA = {1, 3, 5}
setA.clear ()
tisk (setA)
Výstup: set ()

Můžete odebrat libovolnou položku ze sady a vrátit její hodnotu pomocí set.pop () metoda:

setA = {1, 3, 5}
print (setA.pop ())

Sadu Pythonu můžete také aktualizovat pomocí metody update ():

setA = {1, 'b'}
setB = {2, 4, 5,}
tisk (setA.update (setB))
tisk (setA)
Výstup: {1, 2, 4, 5, 'b'}

Hrajte si se sadami Pythonu

I když jsme viděli, jak můžete použít sadu v Pythonu, existují ještě další praktické způsoby, jak ji v kódu použít. Jak jste viděli, může se dokonce hodit při čištění dat pomocí Pythonu.

Kromě sady mají jiné datové typy nebo pole Pythonu mnoho použití a různé aplikace. Zkuste si s nimi pohrát, abyste je lépe pověsili.

E-mailem
Jak pole a seznamy fungují v Pythonu

Pole a seznamy jsou některé z nejužitečnějších datových struktur v programování - i když jen málo lidí je plně využívá.

Přečtěte si další

Související témata
  • Programování
  • Krajta
O autorovi
Idowu Omisola (60 článků publikováno)

Idowu je vášnivý pro cokoli inteligentního a produktivního. Ve svém volném čase si hraje s kódováním a když se nudí, přepne se na šachovnici, ale také rád občas unikne od rutiny. Jeho vášeň ukázat lidem cestu kolem moderních technologií ho motivuje k dalšímu psaní.

Více od Idowu Omisola

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji s technickými tipy, recenzemi, bezplatnými elektronickými knihami a exkluzivními nabídkami!

Ještě jeden krok…!

V e-mailu, který jsme vám právě poslali, potvrďte svou e-mailovou adresu.

.