logo

Nabori Python

Python Set je neurejena zbirka podatkovnih tipov, ki je ponovljiva, spremenljiva in nima podvojenih elementov. Vrstni red elementov v nizu je nedoločen, čeprav je lahko sestavljen iz različnih elementov. Glavna prednost uporabe nabora v primerjavi s seznamom je, da ima visoko optimizirano metodo za preverjanje, ali je določen element v naboru. Tukaj bomo videli, kaj je nabor v Pythonu, in videli bomo tudi različne primere nabora Python.

Ustvarjanje niza v Pythonu

Python Sets je mogoče ustvariti z uporabo vgrajenega set() funkcijo s ponovljivim objektom ali zaporedjem tako, da zaporedje postavite v zavit oklepaj, ločeno z »vejico«.



Opomba: Nabor Python ne more imeti spremenljivih elementov, kot sta seznam ali slovar, saj je nespremenljiv.

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))>

Izhod

matrično množenje v c
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'}>

Časovna zahtevnost: O(n), kjer je n dolžina vhodnega niza, seznama, tuple ali slovarja.
Pomožni prostor: O(n), kjer je n dolžina vhodnega niza, seznama, tuple ali slovarja.



Nabor Python vsebuje samo edinstvene elemente, vendar je v času ustvarjanja nabora mogoče posredovati tudi več podvojenih vrednosti. Vrstni red elementov v naboru Python je nedefiniran in nespremenljiv. Ni nujno, da so tipi elementov v nizu enaki, v niz se lahko posredujejo tudi različne pomešane vrednosti tipov podatkov.

np.vsota
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)>

Izhod
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'}>

Ustvarjanje nabora Python z drugo metodo

V tem primeru je nabor ustvarjen z zapisom v zavitih oklepajih {}, ki vsebuje številke 1, 2 in 3. Podatkovna struktura nabora v Pythonu ali neurejen nabor v Pythonu so neurejene zbirke edinstvenih elementov, zaradi česar so primerni za naloge, ki zahtevajo edinstvenost in nastavite operacije v Pythonu.

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

Izhod
{1, 2, 3}>

Dodajanje elementov naboru v Pythonu

Spodaj je nekaj pristopov, s katerimi lahko dodamo elemente naboru v Pythonu:



  • Uporaba metode add().
  • Uporaba metode update().

Uporaba metode add().

Elemente je mogoče dodatiNastavi v Pythonuz uporabo vgrajenega dodaj() funkcijo. Samo en element naenkrat je mogoče dodati v nabor z uporabo metode add(), zanke pa se uporabljajo za dodajanje več elementov hkrati z uporabo metode add().

Opomba: Seznamov ni mogoče dodati naboru kot elementov, ker seznamov ni mogoče zgostiti, medtem ko je mogoče dodati tuple, ker so nespremenljivi in ​​zato zgošljivi.

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)>

Izhod
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}>

Uporaba metode update().

Za dodajanje dveh ali več elementov se uporablja metoda Update(). Metoda update() kot svoje argumente sprejema sezname, nize, tuple in druge zgoščene vrednosti Python. V vseh teh primerih se izognemo podvojenim elementom.

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)>

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

Dostop do nabora v Pythonu

Do postavk niza ni mogoče dostopati s sklicevanjem na kazalo, ker nizi niso urejeni, postavke nimajo indeksa. Lahko pa se pomikate po elementih zgoščenega niza Python z uporabo zanke for ali vprašate, ali je podana vrednost prisotna v nizu, tako da uporabite ključno besedo 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)>

Izhod

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

Odstranjevanje elementov iz nabora v Pythonu

Spodaj je nekaj načinov, s katerimi lahko odstranimo elemente iz niza v Pythonu:

niz in podniz
  • Uporaba metode remove() ali metode discard().
  • Uporaba metode pop().
  • Uporaba metode clear().

Uporaba metode remove() ali metode discard().

Elemente je mogoče odstraniti izNastavi v Pythonuz uporabo vgrajene funkcije remove(), vendar se pojavi KeyError, če element ne obstaja v hashset Python. Če želite odstraniti elemente iz niza brez KeyError, uporabite discard(), če element ne obstaja v nizu, ostane nespremenjen.

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)>

Izhod
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}>

Uporaba metode pop().

Funkcijo Pop() lahko uporabite tudi za odstranitev in vrnitev elementa iz niza, vendar odstrani le zadnji element niza.

primeri programov python

Opomba: Če nabor ni urejen, potem ni nobenega načina za določitev, kateri element je odstranjen s funkcijo pop().

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)>

Izhod
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}>

Uporaba metode clear().

Za odstranitev vseh elementov iz niza se uporablja funkcija 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)>

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

ZamrznjenoNastavi v Pythonu

Zamrznjeni kompleti v Pythonu so nespremenljivi objekti, ki podpirajo le metode in operatorje, ki ustvarijo rezultat, ne da bi vplivali na zamrznjeni niz ali nize, za katere so uporabljeni. Medtem ko je elemente niza mogoče kadar koli spremeniti, elementi zamrznjenega niza po ustvarjanju ostanejo enaki.

Če ni posredovan noben parameter, vrne prazen zamrznjen niz.

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())>

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

Pretvorba objektov v nize

V tem primeru sezname , vrvice in slovarji se pretvorijo v nize z uporabo set() konstruktor, ki odpravlja dvojnike na seznamih in ekstrahira edinstvene elemente v nizih in slovarskih ključih.

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)>

Izhod
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}>

Primer: Implementacija vseh funkcij

V tem primeru niz funkcij prikazuje običajne operacije nanizov v Pythonu. Ti vključujejo ustvarjanje niza, dodajanje in odstranjevanje elementov, brisanje niza, izvajanje operacij združevanja niza, presečišča, razlike, simetrične razlike, podmnožice in nadmnožice.

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()>

Izhod
{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>

Prednosti Set in Python

  • Edinstveni elementi : Nizi lahko vsebujejo samo edinstvene elemente, zato so lahko uporabni za odstranjevanje dvojnikov iz zbirke podatkov.
  • Hitro testiranje članstva : Nabori so optimizirani za hitro testiranje članstva, zato so lahko uporabni za ugotavljanje, ali je vrednost v zbirki ali ne.
  • Operacije matematičnih množic: Nabori podpirajo matematične naborne operacije, kot so unija, presečišče in razlika, kar je lahko koristno pri delu z nabori podatkov.
  • Spremenljiv : Nizi so spremenljivi, kar pomeni, da lahko dodajate ali odstranjujete elemente iz niza, potem ko je bil ustvarjen.

Slabosti priNastavi v Pythonu

  • Neurejeno : Nizi so neurejeni, kar pomeni, da se ne morete zanesti na vrstni red podatkov v nizu. To lahko oteži dostop ali obdelavo podatkov v določenem vrstnem redu.
  • Omejena funkcionalnost: Nabori imajo omejeno funkcionalnost v primerjavi s seznami, saj ne podpirajo metod, kot sta append() ali pop(). To lahko oteži spreminjanje ali manipulacijo podatkov, shranjenih v nizu.
  • Poraba pomnilnika: Nabori lahko porabijo več pomnilnika kot seznami, zlasti za majhne nabore podatkov. To je zato, ker vsak element v nizu potrebuje dodaten pomnilnik za shranjevanje zgoščene vrednosti.
  • Manj pogosto uporabljeni: Nabori se v Pythonu redkeje uporabljajo kot seznami in slovarji, kar pomeni, da je morda na voljo manj virov ali knjižnic za delo z njimi. To lahko oteži iskanje rešitev za težave ali pomoč pri odpravljanju napak.

Na splošno so lahko nizi uporabna podatkovna struktura v Pythonu, zlasti za odstranjevanje dvojnikov ali za hitro testiranje članstva. Zaradi pomanjkanja vrstnega reda in omejene funkcionalnosti pa so lahko tudi manj vsestranski kot seznami ali slovarji, zato je pomembno, da natančno pretehtate prednosti in slabosti uporabe naborov, ko se odločate, katero strukturo podatkov boste uporabili v svojem programu Python.

Nastavite metode v Pythonu

funkcijaOpis
dodaj() Doda element naboru
Odstrani() Odstrani element iz niza. Če element ni prisoten v nizu, dvignite KeyError
počisti() Odstrani vse elemente iz niza
kopirati() Vrne plitvo kopijo niza
pop() Odstrani in vrne poljuben element niza. Dvigni KeyError, če je niz prazen
nadgradnja() Posodablja niz z združitvijo sebe in drugih
zveza () Vrne unijo nizov v novem nizu
Razlika() Vrne razliko dveh ali več nizov kot nov niz
razlika_posodobitev() Odstrani vse elemente drugega niza iz tega niza
zavrzi() Odstrani element iz niza, če je član. (Če element ni nastavljen, ne storite ničesar)
križišče() Vrne presečišče dveh nizov kot nov niz
intersection_update()Posodobi niz s presečiščem samega sebe in drugega
isdisjuint() Vrne True, če imata niza ničelno presečišče
issubset() Vrne True, če drug niz vsebuje ta niz
superset() Vrne True, če ta niz vsebuje drug niz
simetrična_razlika() Vrne simetrično razliko dveh nizov kot nov niz
symmetric_difference_update() Posodobi niz s simetrično razliko med samim seboj in drugim

Nedavni članki o naborih Python

Nastavite programe

  • Program za sprejem nizov, ki vsebujejo vse samoglasnike
  • Program Python za iskanje skupnih elementov v treh seznamih z uporabo nizov
  • Na dveh seznamih poiščite manjkajoče in dodatne vrednosti
  • Pari celih nizov v dveh nizih
  • Preverite, ali je dani niz heterogram ali ne
  • Največ in najmanj v kompletu
  • Odstranite elemente iz kompleta
  • Razlika Python Set za iskanje izgubljenega elementa iz podvojene matrike
  • Najmanjše število podnaborov z različnimi elementi z uporabo števca
  • Preverite, ali imata dva seznama vsaj en skupen element
  • Program za štetje števila samoglasnikov z uporabo nizov v danem nizu
  • Razlika med dvema seznamoma
  • Python je nastavljen za preverjanje, ali je niz panagram
  • Python množične operacije (unija, presečišče, razlika in simetrična razlika)
  • Sestavljeni niz z neobičajnimi znaki v Pythonu
  • Python slovar, niz in števec za preverjanje, ali lahko frekvence postanejo enake
  • Uporaba Set() v Python Pangram Preverjanje
  • Nastavite update() v Pythonu za združevanje n nizov

Uporabne povezave

  • Izpis programov Python – Sets
  • Nedavni članki o naborih Python
  • Vprašanja z več možnimi odgovori – Python
  • Vsi članki v kategoriji Python