logo

Sady Pythonu

Python Set je neuspořádaná kolekce datových typů, která je iterovatelná, měnitelná a nemá žádné duplicitní prvky. Pořadí prvků v sadě není definováno, ačkoli se může skládat z různých prvků. Hlavní výhodou použití množiny na rozdíl od seznamu je to, že má vysoce optimalizovanou metodu pro kontrolu, zda je v množině obsažen konkrétní prvek. Zde uvidíme, co je množina v Pythonu, a také uvidíme různé příklady množiny v Pythonu.

Vytvoření sady v Pythonu

Sady Pythonu lze vytvořit pomocí vestavěného soubor() fungovat s iterovatelným objektem nebo sekvencí umístěním sekvence do složených závorek oddělených čárkou.



Poznámka: Sada Pythonu nemůže mít měnitelné prvky, jako je seznam nebo slovník, protože je neměnná.

Python3
# Creating a Set set1 = set() print('Initial blank Set: ') print(set1) # Creating a Set with the use of a String set1 = set('GeeksForGeeks') print('
Set with the use of String: ') print(set1) String = 'GeeksForGeeks' set1 = set(String) print('
Set with the use of an Object: ') print(set1) # Creating a Set with the use of a List set1 = set(['Geeks', 'For', 'Geeks']) print('
Set with the use of List: ') print(set1) # Creating a Set with the use of a tuple t = ('Geeks', 'for', 'Geeks') print('
Set with the use of Tuple: ') print(set(t)) # Creating a Set with the use of a dictionary d = {'Geeks': 1, 'for': 2, 'Geeks': 3} print('
Set with the use of Dictionary: ') print(set(d))>

Výstup

věk rihanny
Initial blank Set:  set()  Set with the use of String:  {'e', 'G', 's', 'F', 'o', 'r', 'k'}  Set with the use of an Object:  {'e', 'G', 's', 'F', 'o', 'r', 'k'}  Set with the use of List:  {'For', 'Geeks'}  Set with the use of Tuple:  {'for', 'Geeks'}  Set with the use of Dictionary:  {'for', 'Geeks'}>

Časová složitost: O(n), kde n je délka vstupního řetězce, seznamu, n-tice nebo slovníku.
Pomocný prostor: O(n), kde n je délka vstupního řetězce, seznamu, n-tice nebo slovníku.



Sada Pythonu obsahuje pouze jedinečné prvky, ale v době vytvoření sady lze také předat více duplicitních hodnot. Pořadí prvků v sadě Pythonu není definováno a je neměnné. Typ prvků v množině nemusí být stejný, množině lze také předávat různé smíšené hodnoty datových typů.

np.concatenate
Python3
# Creating a Set with a List of Numbers # (Having duplicate values) set1 = set([1, 2, 4, 4, 3, 3, 3, 6, 5]) print('
Set with the use of Numbers: ') print(set1) # Creating a Set with a mixed type of values # (Having numbers and strings) set1 = set([1, 2, 'Geeks', 4, 'For', 6, 'Geeks']) print('
Set with the use of Mixed Values') print(set1)>

Výstup
Set with the use of Numbers: {1, 2, 3, 4, 5, 6} Set with the use of Mixed Values {1, 2, 4, 6, 'Geeks', 'For'}>

Vytvoření sady Python jinou metodou

V tomto příkladu je množina vytvořena pomocí notace složených závorek {}, která obsahuje číslo 1, 2 a 3. Datová struktura množiny v Pythonu nebo neuspořádaná množina v Pythonu jsou neuspořádané kolekce jedinečných prvků, takže jsou vhodné pro úlohy vyžadující jedinečnost a nastavit operace v Pythonu.

Python3
# Another Method to create sets in Python3 # Set containing numbers my_set = {1, 2, 3} print(my_set)>

Výstup
{1, 2, 3}>

Přidání prvků do sady v Pythonu

Níže jsou uvedeny některé z přístupů, kterými můžeme přidat prvky do sady v Pythonu:



  • Použití metody add().
  • Použití metody update().

Použití metody add().

Prvky lze přidat doSady v Pythonupomocí vestavěného přidat() funkce. Pomocí metody add() lze do sady přidat vždy pouze jeden prvek, smyčky se používají k přidání více prvků najednou pomocí metody add().

Poznámka: Seznamy nelze přidávat do sady jako prvky, protože seznamy nelze hašovat, zatímco n-tice lze přidávat, protože n-tice jsou neměnné, a tedy hašovatelné.

Python3
# Creating a Set set1 = set() print('Initial blank Set: ') print(set1) # Adding element and tuple to the Set set1.add(8) set1.add(9) set1.add((6, 7)) print('
Set after Addition of Three elements: ') print(set1) # Adding elements to the Set # using Iterator for i in range(1, 6): set1.add(i) print('
Set after Addition of elements from 1-5: ') print(set1)>

Výstup
Initial blank Set: set() Set after Addition of Three elements: {8, 9, (6, 7)} Set after Addition of elements from 1-5: {1, 2, 3, (6, 7), 4, 5, 8, 9}>

Použití metody update().

Pro přidání dvou nebo více prvků se používá metoda Update(). Metoda update() přijímá jako své argumenty seznamy, řetězce, n-tice a také další hashovací sady Pythonu. Ve všech těchto případech se zabrání duplicitním prvkům.

rolování myší nefunguje
Python3
# Addition of elements to the Set # using Update function set1 = set([4, 5, (6, 7)]) set1.update([10, 11]) print('
Set after Addition of elements using Update: ') print(set1)>

Výstup
Set after Addition of elements using Update: {4, 5, (6, 7), 10, 11}>

Přístup k sadě v Pythonu

K položkám sady nelze přistupovat odkazem na index, protože sady nejsou seřazeny, položky nemají žádný index. Ale můžete procházet položky hashovací sady Pythonu pomocí cyklu for nebo se zeptat, zda je v sadě přítomna zadaná hodnota, pomocí klíčového slova in.

Python3
# Creating a set set1 = set(['Geeks', 'For', 'Geeks.']) print('
Initial set') print(set1) # Accessing element using # for loop print('
Elements of set: ') for i in set1: print(i, end=' ') # Checking the element # using in keyword print('
') print('Geeks' in set1)>

Výstup

Initial set {'Geeks.', 'For', 'Geeks'}  Elements of set:  Geeks. For Geeks   True>

Odebrání prvků ze sady v Pythonu

Níže jsou uvedeny některé ze způsobů, jak můžeme odstranit prvky ze sady v Pythonu:

  • Pomocí metody remove() nebo metody discard().
  • Použití metody pop().
  • Použití metody clear().

Pomocí metody remove() nebo metody discard().

Prvky lze zSady v Pythonupomocí vestavěné funkce remove(), ale pokud prvek v hashsetu Python neexistuje, dojde k chybě KeyError. Chcete-li odstranit prvky ze sady bez KeyError, použijte discard(), pokud prvek v sadě neexistuje, zůstane nezměněn.

Python3
# Creating a Set set1 = set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) print('Initial Set: ') print(set1) # Removing elements from Set using Remove() method set1.remove(5) set1.remove(6) print('
Set after Removal of two elements: ') print(set1) # Removing elements from Set using Discard() method set1.discard(8) set1.discard(9) print('
Set after Discarding two elements: ') print(set1) # Removing elements from Set using iterator method for i in range(1, 5): set1.remove(i) print('
Set after Removing a range of elements: ') print(set1)>

Výstup
Initial Set: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} Set after Removal of two elements: {1, 2, 3, 4, 7, 8, 9, 10, 11, 12} Set after Discarding two elements: {1, 2, 3, 4, 7, 10, 11, 12} Set after Removing a range of elements: {7, 10, 11, 12}>

Použití metody pop().

Funkci Pop() lze také použít k odstranění a vrácení prvku ze sady, ale odstraní pouze poslední prvek sady.

Poznámka: Pokud je sada neuspořádaná, neexistuje způsob, jak pomocí funkce pop() určit, který prvek se zobrazí.

Python3
# Python program to demonstrate # Deletion of elements in a Set # Creating a Set set1 = set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) print('Initial Set: ') print(set1) # Removing element from the # Set using the pop() method set1.pop() print('
Set after popping an element: ') print(set1)>

Výstup
Initial Set: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} Set after popping an element: {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}>

Použití metody clear().

K odstranění všech prvků ze sady se používá funkce clear().

Python3
#Creating a set set1 = set([1,2,3,4,5]) print('
 Initial set: ') print(set1) # Removing all the elements from  # Set using clear() method set1.clear() print('
Set after clearing all the elements: ') print(set1)>

Výstup
 Initial set: {1, 2, 3, 4, 5} Set after clearing all the elements: set()>

ZamrzlýSady v Pythonu

Zmrazené sady v Pythonu jsou neměnné objekty, které podporují pouze metody a operátory, které vytvářejí výsledek, aniž by ovlivnily zmrazenou sadu nebo sady, na které jsou aplikovány. Zatímco prvky sady lze kdykoli upravit, prvky zmrazené sady zůstanou po vytvoření stejné.

Pokud nejsou předány žádné parametry, vrátí prázdnou sadu zmrazených hodnot.

jarní rám
Python3
# Python program to demonstrate # working of a FrozenSet # Creating a Set String = ('G', 'e', 'e', 'k', 's', 'F', 'o', 'r') Fset1 = frozenset(String) print('The FrozenSet is: ') print(Fset1) # To print Empty Frozen Set # No parameter is passed print('
Empty FrozenSet: ') print(frozenset())>

Výstup
The FrozenSet is: frozenset({'F', 's', 'o', 'G', 'r', 'e', 'k'}) Empty FrozenSet: frozenset()>

Typování objektů do sad

V tomto příkladu seznamy , struny a slovníky jsou převedeny na sady pomocí soubor() konstruktor, odstranění duplicit v seznamech a extrahování jedinečných prvků v řetězcích a klíčích slovníku.

Python3
# Typecasting list into set my_list = [1, 2, 3, 3, 4, 5, 5, 6, 2] my_set = set(my_list) print('my_list as a set: ', my_set) # Typecasting string into set my_str = 'techcodeview.com' my_set1 = set(my_str) print('my_str as a set: ', my_set1) # Typecasting dictionary into set my_dict = {1: 'One', 2: 'Two', 3: 'Three'} my_set2 = set(my_dict) print('my_dict as a set: ', my_set2)>

Výstup
my_list as a set: {1, 2, 3, 4, 5, 6} my_str as a set: {'G', 'f', 'r', 'e', 'k', 'o', 's'} my_dict as a set: {1, 2, 3}>

Příklad: Implementace všech funkcí

V tomto příkladu řada funkcí demonstruje běžné operace nasady v Pythonu. Patří mezi ně vytváření množiny, přidávání a odebírání prvků, čištění množiny, provádění operací sjednocení množin, průniku, rozdílu, symetrického rozdílu, podmnožiny a nadmnožiny.

Python3
def create_set(): my_set = {1, 2, 3, 4, 5} print(my_set) def add_element(): my_set = {1, 2, 3, 4, 5} my_set.add(6) print(my_set) def remove_element(): my_set = {1, 2, 3, 4, 5} my_set.remove(3) print(my_set) def clear_set(): my_set = {1, 2, 3, 4, 5} my_set.clear() print(my_set) def set_union(): set1 = {1, 2, 3} set2 = {4, 5, 6} my_set = set1.union(set2) print(my_set) def set_intersection(): set1 = {1, 2, 3, 4, 5} set2 = {4, 5, 6, 7, 8} my_set = set1.intersection(set2) print(my_set) def set_difference(): set1 = {1, 2, 3, 4, 5} set2 = {4, 5, 6, 7, 8} my_set = set1.difference(set2) print(my_set) def set_symmetric_difference(): set1 = {1, 2, 3, 4, 5} set2 = {4, 5, 6, 7, 8} my_set = set1.symmetric_difference(set2) print(my_set) def set_subset(): set1 = {1, 2, 3, 4, 5} set2 = {2, 3, 4} subset = set2.issubset(set1) print(subset) def set_superset(): set1 = {1, 2, 3, 4, 5} set2 = {2, 3, 4} superset = set1.issuperset(set2) print(superset) if __name__ == '__main__': create_set() add_element() remove_element() clear_set() set_union() set_intersection() set_difference() set_symmetric_difference() set_subset() set_superset()>

Výstup
{1, 2, 3, 4, 5} {1, 2, 3, 4, 5, 6} {1, 2, 4, 5} set() {1, 2, 3, 4, 5, 6} {4, 5} {1, 2, 3} {1, 2, 3, 6, 7, 8} True True>

Výhody sady v Pythonu

  • Jedinečné prvky : Sady mohou obsahovat pouze jedinečné prvky, takže mohou být užitečné pro odstranění duplikátů z kolekce dat.
  • Rychlé testování členství : Sady jsou optimalizovány pro rychlé testování členství, takže mohou být užitečné pro určení, zda je hodnota v kolekci či nikoli.
  • Operace s matematickou množinou: Množiny podporují matematické operace množin, jako je sjednocení, průnik a rozdíl, které mohou být užitečné pro práci se sadami dat.
  • Proměnlivý : Sady jsou proměnlivé, což znamená, že můžete přidat nebo odebrat prvky ze sady poté, co byla vytvořena.

NevýhodySady v Pythonu

  • Neuspořádané : Sady jsou neuspořádané, což znamená, že se nemůžete spolehnout na pořadí dat v sadě. To může ztížit přístup nebo zpracování dat v určitém pořadí.
  • Omezená funkčnost: Sady mají ve srovnání se seznamy omezenou funkčnost, protože nepodporují metody jako append() nebo pop(). To může ztížit úpravu nebo manipulaci s daty uloženými v sadě.
  • Využití paměti: Sady mohou spotřebovat více paměti než seznamy, zejména u malých datových sad. Je to proto, že každý prvek v sadě vyžaduje další paměť pro uložení hodnoty hash.
  • Méně používané: Sady se v Pythonu používají méně často než seznamy a slovníky, což znamená, že pro práci s nimi může být k dispozici méně zdrojů nebo knihoven. To může ztížit hledání řešení problémů nebo získání pomoci s laděním.

Celkově mohou být sady užitečnou datovou strukturou v Pythonu, zejména pro odstraňování duplikátů nebo pro rychlé testování členství. Jejich nedostatečné řazení a omezená funkčnost je však také může učinit méně univerzálními než seznamy nebo slovníky, takže je důležité pečlivě zvážit výhody a nevýhody použití sad při rozhodování, kterou datovou strukturu použít ve svém programu Python.

Nastavit metody v Pythonu

FunkcePopis
přidat() Přidá prvek do sady
odstranit() Odebere prvek ze sady. Pokud prvek v sadě není, vyvolejte KeyError
Průhledná() Odebere všechny prvky ze sady
kopírovat() Vrátí mělkou kopii sady
pop() Odstraní a vrátí prvek libovolné sady. Zvyšte KeyError, pokud je sada prázdná
Aktualizace() Aktualizuje sadu spojením sebe sama a ostatních
svaz() Vrátí sjednocení množin v nové množině
rozdíl() Vrátí rozdíl dvou nebo více množin jako novou množinu
rozdíl_aktualizace() Odebere z této sady všechny prvky jiné sady
vyřadit() Odebere prvek ze sady, pokud je členem. (Nedělejte nic, pokud prvek není v sadě)
průsečík() Vrátí průnik dvou množin jako novou množinu
intersection_update()Aktualizuje množinu průsečíkem sebe sama a další
isdisjoint() Vrátí hodnotu True, pokud dvě množiny mají nulový průsečík
issubset() Vrátí hodnotu True, pokud tuto sadu obsahuje jiná sada
superset() Vrátí hodnotu True, pokud tato sada obsahuje jinou sadu
symetrický_rozdíl() Vrátí symetrický rozdíl dvou množin jako novou množinu
symmetric_difference_update() Aktualizuje sadu symetrickým rozdílem mezi sebou a jinou

Nejnovější články o sadách Python

Nastavit programy

  • Program pro přijímání řetězců, které obsahují všechny samohlásky
  • Program Python pro nalezení společných prvků ve třech seznamech pomocí sad
  • Najděte chybějící a další hodnoty ve dvou seznamech
  • Páry kompletních strun ve dvou sadách
  • Zkontrolujte, zda je daný řetězec Heterogram nebo ne
  • Maximum a minimum v sadě
  • Odebrat položky ze sady
  • Python Nastavte rozdíl pro nalezení ztraceného prvku z duplikovaného pole
  • Minimální počet podmnožin s odlišnými prvky pomocí Counter
  • Zkontrolujte, zda mají dva seznamy společný alespoň jeden prvek
  • Program pro počítání počtu samohlásek pomocí sad v daném řetězci
  • Rozdíl mezi dvěma seznamy
  • Python je nastaven na kontrolu, zda je řetězec panagram
  • Operace s množinou Pythonu (sjednocení, průnik, rozdíl a symetrický rozdíl)
  • Zřetězený řetězec s neobvyklými znaky v Pythonu
  • Pythonský slovník, sada a počítadlo pro kontrolu, zda se frekvence mohou stát stejnými
  • Použití Set() v Python Pangram Checking
  • Nastavte update() v Pythonu tak, aby sjednotil n polí

užitečné odkazy

  • Výstup programů Python – sady
  • Nedávné články o sadách Python
  • Vícenásobné otázky – Python
  • Všechny články v kategorii Python