logo

Python rinkiniai

Python Set yra netvarkingas duomenų tipų rinkinys, kuris yra kartojamas, keičiamas ir neturi pasikartojančių elementų. Elementų tvarka rinkinyje yra neapibrėžta, nors ją gali sudaryti įvairūs elementai. Pagrindinis rinkinio, o ne sąrašo, naudojimo pranašumas yra tas, kad jame yra labai optimizuotas metodas patikrinti, ar rinkinyje yra konkretus elementas. Čia pamatysime, kas yra Python rinkinys, taip pat pamatysime įvairius Python rinkinio pavyzdžius.

Rinkinio kūrimas Python

Python rinkinius galima sukurti naudojant integruotą rinkinys () funkcija su kartojamu objektu arba seka, įterpiant seką į riestinius skliaustus, atskirtus „kableliu“.



Pastaba: Python rinkinys negali turėti kintamų elementų, tokių kaip sąrašas ar žodynas, nes jis yra nekintantis.

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

Išvestis

yra java metodas
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'}>

Laiko sudėtingumas: O(n), kur n yra įvesties eilutės, sąrašo, eilutės arba žodyno ilgis.
Pagalbinė erdvė: O(n), kur n yra įvesties eilutės, sąrašo, eilutės arba žodyno ilgis.



Python rinkinyje yra tik unikalūs elementai, tačiau rinkinio kūrimo metu taip pat gali būti perduodamos kelios pasikartojančios reikšmės. Elementų tvarka Python rinkinyje yra neapibrėžta ir nekeičiama. Aibės elementų tipai nebūtinai turi būti vienodi, į rinkinį taip pat gali būti perduodamos įvairios sumaišytos duomenų tipų reikšmės.

kur rasti savo naršyklės nustatymus
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)>

Išvestis
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'}>

Python rinkinio sukūrimas kitu metodu

Šiame pavyzdyje rinkinys sukuriamas naudojant riestinius skliaustų {} žymėjimą, kuriame yra skaičiai 1, 2 ir 3. Rinkinio duomenų struktūra Python arba netvarkingas rinkinys Python yra nerūšiuoti unikalių elementų rinkiniai, todėl jie tinka užduotims, kurioms reikia unikalumo ir nustatyti operacijas Python.

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

Išvestis
{1, 2, 3}>

Elementų įtraukimas į rinkinį Python

Toliau pateikiami keli būdai, kuriais galime įtraukti elementus į rinkinį Python:



  • Naudojant add() metodą
  • Naudojant update() metodą

Naudojant add() metodą

Elementų galima pridėti prieNustatyti Pythonnaudojant įmontuotą papildyti() funkcija. Į aibę vienu metu galima pridėti tik vieną elementą naudojant add() metodą, o kilpos naudojamos kelių elementų įtraukimui vienu metu naudojant add() metodą.

Pastaba: Sąrašų negalima pridėti prie rinkinio kaip elementų, nes sąrašams negalima pritaikyti maišos, o kortelių galima pridėti, nes kortelės yra nekintančios, todėl jas galima naudoti.

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

Išvestis
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}>

Naudojant update() metodą

Norėdami pridėti du ar daugiau elementų, naudojamas Update() metodas. Metodas update() kaip argumentus priima sąrašus, eilutes, eilutes ir kitus Python maišos rinkinius. Visais šiais atvejais išvengiama pasikartojančių elementų.

Kylie jenner broliai ir seserys
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)>

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

Prieiga prie rinkinio naudojant Python

Rinkinio elementų negalima pasiekti nurodant indeksą, nes rinkiniai yra nerūšiuoti, elementai neturi indekso. Tačiau galite peržiūrėti Python maišos rinkinio elementus naudodami kilpą arba paklausti, ar rinkinyje yra nurodyta reikšmė, naudodami raktinį žodį 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)>

Išvestis

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

Elementų pašalinimas iš rinkinio Python

Toliau pateikiami keli būdai, kuriais galime pašalinti elementus iš rinkinio Python:

  • Naudojant metodą pašalinti () arba atmesti () metodą
  • Naudojant pop() metodą
  • Naudojant Clear() metodą

Naudojant metodą pašalinti () arba atmesti () metodą

Elementus galima pašalinti išNustatyti Pythonnaudojant įtaisytąją Remove() funkciją, tačiau jei elemento maišos rinkinyje Python nėra, atsiranda KeyError. Norėdami pašalinti elementus iš rinkinio be KeyError, naudokite discard (), jei elemento rinkinyje nėra, jis lieka nepakitęs.

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

Išvestis
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}>

Naudojant pop() metodą

Pop() funkcija taip pat gali būti naudojama elementui pašalinti ir grąžinti iš rinkinio, tačiau ji pašalina tik paskutinį rinkinio elementą.

Pastaba: Jei rinkinys netvarkingas, naudojant pop() funkciją neįmanoma nustatyti, kuris elementas iššoko.

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

Išvestis
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}>

Naudojant Clear() metodą

Norint pašalinti visus elementus iš rinkinio, naudojama 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)>

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

SušalęsNustatyti Python

Užšaldyti rinkiniai Python yra nekintantys objektai, kurie palaiko tik metodus ir operatorius, kurie sukuria rezultatą nepaveikdami fiksuoto rinkinio ar rinkinių, kuriems jie taikomi. Nors rinkinio elementus galima bet kada keisti, fiksuoto rinkinio elementai po sukūrimo išlieka tokie patys.

Jei nepateikiami jokie parametrai, jis grąžina tuščią fiksuotą rinkinį.

java lambda išraiškos
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())>

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

Objektų įvedimas į rinkinius

Šiame pavyzdyje sąrašus , stygos ir žodynai yra konvertuojami į rinkinius naudojant rinkinys () konstruktorius, pašalina pasikartojančius sąrašus ir ištraukia unikalius elementus iš eilučių ir žodyno raktų.

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

Išvestis
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}>

Pavyzdys: visų funkcijų įgyvendinimas

Šiame pavyzdyje eilė funkcijų demonstruoja įprastas operacijasrinkiniai Python. Tai apima rinkinio kūrimą, elementų pridėjimą ir pašalinimą, rinkinio išvalymą, aibės jungimo, sankirtos, skirtumo, simetrinio skirtumo, poaibio ir viršaibių operacijų atlikimą.

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

Išvestis
{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>

„Python“ rinkinio pranašumai

  • Unikalūs elementai : rinkiniuose gali būti tik unikalių elementų, todėl jie gali būti naudingi pašalinant dublikatus iš duomenų rinkinio.
  • Greitas narystės testavimas : rinkiniai optimizuoti greitam narystės testavimui, todėl jie gali būti naudingi nustatant, ar reikšmė yra rinkinyje, ar ne.
  • Matematinės aibės operacijos: Rinkiniai palaiko matematines rinkinių operacijas, tokias kaip jungtis, sankirta ir skirtumas, kurios gali būti naudingos dirbant su duomenų rinkiniais.
  • Keičiamas : rinkiniai yra keičiami, o tai reiškia, kad sukūrus rinkinį galite pridėti arba pašalinti elementus.

Trūkumai išNustatyti Python

  • Neužsakyta : rinkiniai yra netvarkingi, o tai reiškia, kad negalima pasikliauti rinkinio duomenų tvarka. Dėl to gali būti sunku pasiekti arba apdoroti duomenis tam tikra tvarka.
  • Ribotas funkcionalumas: Rinkinių funkcionalumas yra ribotas, palyginti su sąrašais, nes jie nepalaiko tokių metodų kaip append() arba pop(). Tai gali apsunkinti rinkinyje saugomų duomenų modifikavimą ar manipuliavimą.
  • Atminties naudojimas: Rinkiniai gali užimti daugiau atminties nei sąrašai, ypač mažiems duomenų rinkiniams. Taip yra todėl, kad kiekvienam rinkinio elementui reikia papildomos atminties maišos reikšmei išsaugoti.
  • Rečiau naudojamas: Rinkiniai naudojami rečiau nei sąrašai ir žodynai Python, o tai reiškia, kad gali būti mažiau išteklių ar bibliotekų, skirtų darbui su jais. Dėl to gali būti sunkiau rasti problemų sprendimus arba gauti pagalbos dėl derinimo.

Apskritai rinkiniai gali būti naudinga Python duomenų struktūra, ypač pašalinant pasikartojančius duomenis arba atliekant greitą narystės testavimą. Tačiau dėl jų tvarkos trūkumo ir riboto funkcionalumo jie taip pat gali būti mažiau universalūs nei sąrašai ar žodynai, todėl sprendžiant, kokią duomenų struktūrą naudoti savo Python programoje, svarbu atidžiai apsvarstyti rinkinių naudojimo pranašumus ir trūkumus.

Nustatykite metodus Python

Funkcijaapibūdinimas
papildyti() Prideda elementą prie rinkinio
pašalinti () Pašalina elementą iš rinkinio. Jei elemento rinkinyje nėra, pakelkite KeyError
aišku () Pašalina visus elementus iš rinkinio
kopija () Grąžina seklią rinkinio kopiją
pop () Pašalina ir grąžina savavališką rinkinio elementą. Raise KeyError, jei rinkinys tuščias
atnaujinti () Atnaujina rinkinį su savo ir kitų sąjunga
sąjunga () Grąžina aibių junginį naujame rinkinyje
skirtumas () Pateikia dviejų ar daugiau rinkinių skirtumą kaip naują rinkinį
skirtumas_atnaujinimas() Iš šio rinkinio pašalinami visi kito rinkinio elementai
išmesti () Pašalina elementą iš rinkinio, jei jis yra narys. (Nieko nedarykite, jei elementas nėra nustatytas)
sankryža () Grąžina dviejų rinkinių sankirtą kaip naują aibę
intersection_update()Atnaujina rinkinį su savo ir kito sankirta
isdisjoint () Grąžina True, jei dvi aibės turi nulinę sankirtą
issubset () Grąžina True, jei kitame rinkinyje yra šis rinkinys
superset () Grąžina True, jei šiame rinkinyje yra kitas rinkinys
simetrinis_skirtumas() Pateikia simetrinį dviejų rinkinių skirtumą kaip naują rinkinį
simetriškas_skirtumas_atnaujinimas() Atnaujina rinkinį su simetrišku savo ir kito skirtumu

Naujausi straipsniai apie Python rinkinius

Nustatyti programas

  • Programa, skirta priimti eilutes, kuriose yra visi balsiai
  • Python programa, skirta rasti bendrus elementus trijuose sąrašuose naudojant rinkinius
  • Dviejuose sąrašuose raskite trūkstamas ir papildomas reikšmes
  • Dviejų rinkinių pilnų stygų poros
  • Patikrinkite, ar nurodyta eilutė yra heterograma, ar ne
  • Maksimalus ir minimumas rinkinyje
  • Pašalinti elementus iš rinkinio
  • Python Nustatykite skirtumą, kad rastumėte prarastą elementą iš pasikartojančio masyvo
  • Minimalus poaibių skaičius su skirtingais elementais naudojant skaitiklį
  • Patikrinkite, ar dviejuose sąrašuose yra bent vienas bendras elementas
  • Programa, skirta suskaičiuoti balsių skaičių, naudojant rinkinius tam tikroje eilutėje
  • Skirtumas tarp dviejų sąrašų
  • Python nustatytas patikrinti, ar eilutė yra panagrama
  • Python rinkinio operacijos (susijungimas, sankirta, skirtumas ir simetriškas skirtumas)
  • Sujungta eilutė su neįprastais Python simboliais
  • Python žodynas, nustatykite ir skaitiklis, kad patikrintumėte, ar dažniai gali tapti vienodi
  • Set() naudojimas Python Pangram tikrinime
  • Nustatykite atnaujinimą () Python, kad sujungtumėte n masyvų

Naudingos nuorodos

  • Python programų išvestis – rinkiniai
  • Naujausi straipsniai apie Python rinkinius
  • Klausimai su keliais pasirinkimais – Python
  • Visi straipsniai Python kategorijoje