logo

Setter i Python

Et sett i Python-programmering er en uordnet innsamlingsdatatype som kan itereres, endres og har ingen dupliserte elementer.

Settet er representert av { } (verdier omsluttet av krøllete klammeparenteser)



Den største fordelen med å bruke et sett, i motsetning til en liste , er at den har en svært optimalisert metode for å sjekke om et spesifikt element er inneholdt i settet. Dette er basert på en datastruktur kjent som en hashtabell. Siden sett er uordnede, kan vi ikke få tilgang til elementer ved hjelp av indekser som vi gjør i lister.

Eksempel på Python-sett

Python3








var>=> {>'Geeks'>,>'for'>,>'Geeks'>}> type>(var)>

>

>

Produksjon:

set>

Tidskompleksitet: O(1)
Hjelpeområde: O(1)

Skriv Casting med Python Set-metoden

Python set() metoden brukes for type casting.

Python3




# typecasting list to set> myset>=> set>([>'a'>,>'b'>,>'c'>])> print>(myset)> # Adding element to the set> myset.add(>'d'>)> print>(myset)>

>

>

Produksjon:

Python-sett er en uordnet datatype, noe som betyr at vi ikke kan vite i hvilken rekkefølge elementene i settet er lagret.

{'c', 'b', 'a'} {'d', 'c', 'b', 'a'}>

Tidskompleksitet: O(n)
Hjelpeområde: O(n)

Sjekk unik og uforanderlig med Python Set

Python-sett kan ikke ha en duplikatverdi, og når den først er opprettet, kan vi ikke endre verdien.

Python3




# Python program to demonstrate that> # a set cannot have duplicate values> # and we cannot change its items> # a set cannot have duplicate values> myset>=> {>'Geeks'>,>'for'>,>'Geeks'>}> print>(myset)> # values of a set cannot be changed> myset[>1>]>=> 'Hello'> print>(myset)>

>

>

Produksjon:

Den første koden forklarer at settet ikke kan ha en duplikatverdi. Hvert element i den har en unik verdi.

Den andre koden genererer en feil fordi vi ikke kan tildele eller endre en verdi når settet er opprettet. Vi kan bare legge til eller slette elementer i settet.

{'Geeks', 'for'} TypeError: 'set' object does not support item assignment>

Heterogent element med Python-sett

Python-sett kan lagre heterogene elementer i det, det vil si at et sett kan lagre en blanding av datatyper streng, heltall, boolsk osv.

Python3




# Python example demonstrate that a set> # can store heterogeneous elements> myset>=> {>'Geeks'>,>'for'>,>10>,>52.7>,>True>}> print>(myset)>

>

>

Produksjon:

{True, 10, 'Geeks', 52.7, 'for'}>

Tidskompleksitet: O(n)
Hjelpeområde: O(n)

Python frosne sett

Frosne sett i Python er uforanderlige objekter som bare støtter metoder og operatører som produserer et resultat uten å påvirke det frosne settet eller settene de brukes på. Det kan gjøres med frozenset()-metoden i Python.

Mens elementer i et sett kan endres når som helst, forblir elementene i det frosne settet de samme etter opprettelsen.

Hvis ingen parametere sendes, returnerer den et tomt frossensett.

Python




# Python program to demonstrate differences> # between normal and frozen set> # Same as {'a', 'b','c'}> normal_set>=> set>([>'a'>,>'b'>,>'c'>])> print>(>'Normal Set'>)> print>(normal_set)> # A frozen set> frozen_set>=> frozenset>([>'e'>,>'f'>,>'g'>])> print>(>' Frozen Set'>)> print>(frozen_set)> # Uncommenting below line would cause error as> # we are trying to add element to a frozen set> # frozen_set.add('h')>

>

>

Produksjon:

Normal Set {'a', 'c', 'b'} Frozen Set {'e', 'g', 'f'}>

Tidskompleksitet: O(n)
Hjelpeområde: O(n)

Intern arbeid av Set

Dette er basert på en datastruktur kjent som en hashtabell. Hvis flere verdier er tilstede på samme indeksposisjon, blir verdien lagt til den indeksposisjonen for å danne en koblet liste.

I er Python-sett implementert ved hjelp av en ordbok med dummy-variabler, hvor nøkkelvesener medlemmene setter med større optimaliseringer av tidskompleksiteten.

Sett implementering:

Setter i Python - Internt arbeid

Sett med mange operasjoner på en enkelt hashtabell:

Setter i Python - Hash Table

Metoder for sett

Legge til elementer i Python-sett

Innsetting i settet gjøres gjennom set.add( ) funksjon, der en passende postverdi opprettes for å lagre i hashtabellen. Samme som å sjekke etter en vare, dvs. O(1) i gjennomsnitt. Men i verste fall kan det bli det På) .

Python3




# A Python program to> # demonstrate adding elements> # in a set> # Creating a Set> people>=> {>'Jay'>,>'Idrish'>,>'Archi'>}> print>(>'People:'>, end>=> ' '>)> print>(people)> # This will add Daxit> # in the set> people.add(>'Daxit'>)> # Adding elements to the> # set using iterator> for> i>in> range>(>1>,>6>):> >people.add(i)> print>(>' Set after adding element:'>, end>=> ' '>)> print>(people)>

>

>

Produksjon:

People: {'Idrish', 'Archi', 'Jay'} Set after adding element: {1, 2, 3, 4, 5, 'Idrish', 'Archi', 'Jay', 'Daxit'}>

Tidskompleksitet: O(n)
Hjelpeområde: O(n)

Unionsoperasjon på Python-sett

To sett kan slås sammen ved å bruke union()-funksjonen eller | operatør. Begge Hash Table-verdiene åpnes og krysses med fletteoperasjon utføre på dem for å kombinere elementene, samtidig fjernes duplikater. Tidskompleksiteten til dette er O(len(s1) + len(s2)) hvor s1 og s2 er to sett hvis sammenkobling må gjøres.

Python3




hrithik roshan alder

# Python Program to> # demonstrate union of> # two sets> people>=> {>'Jay'>,>'Idrish'>,>'Archil'>}> vampires>=> {>'Karan'>,>'Arjun'>}> dracula>=> {>'Deepanshu'>,>'Raju'>}> # Union using union()> # function> population>=> people.union(vampires)> print>(>'Union using union() function'>)> print>(population)> # Union using '|'> # operator> population>=> people|dracula> print>(>' Union using '|' operator'>)> print>(population)>

>

>

Produksjon:

Union using union() function {'Karan', 'Idrish', 'Jay', 'Arjun', 'Archil'} Union using '|' operator {'Deepanshu', 'Idrish', 'Jay', 'Raju', 'Archil'}>

Tidskompleksitet: O(n)
Hjelpeområde: O(n)

Kryssoperasjon på Python-sett

Dette kan gjøres gjennom intersection() eller & operator. Vanlige elementer er valgt. De ligner på iterasjon over Hash-listene og kombinerer de samme verdiene på begge tabellene. Tidskompleksiteten til dette er O(min(len(s1), len(s2)) hvor s1 og s2 er to sett hvis forening må gjøres.

Python3




# Python program to> # demonstrate intersection> # of two sets> set1>=> set>()> set2>=> set>()> for> i>in> range>(>5>):> >set1.add(i)> for> i>in> range>(>3>,>9>):> >set2.add(i)> # Intersection using> # intersection() function> set3>=> set1.intersection(set2)> print>(>'Intersection using intersection() function'>)> print>(set3)> # Intersection using> # '&' operator> set3>=> set1 & set2> print>(>' Intersection using '&' operator'>)> print>(set3)>

>

>

Produksjon:

Intersection using intersection() function {3, 4} Intersection using '&' operator {3, 4}>

Tidskompleksitet: O(n)
Hjelpeområde: O(n)

Finne forskjeller på sett i Python

For å finne forskjeller mellom sett. Ligner på å finne forskjeller i den koblede listen. Dette gjøres gjennom differens() eller – operator. Tidskompleksiteten for å finne forskjell s1 – s2 er O(len(s1))

Python3




# Python program to> # demonstrate difference> # of two sets> set1>=> set>()> set2>=> set>()> for> i>in> range>(>5>):> >set1.add(i)> for> i>in> range>(>3>,>9>):> >set2.add(i)> # Difference of two sets> # using difference() function> set3>=> set1.difference(set2)> print>(>' Difference of two sets using difference() function'>)> print>(set3)> # Difference of two sets> # using '-' operator> set3>=> set1>-> set2> print>(>' Difference of two sets using '-' operator'>)> print>(set3)>

>

>

Produksjon:

Difference of two sets using difference() function {0, 1, 2} Difference of two sets using '-' operator {0, 1, 2}>

Tidskompleksitet: O(n)
Hjelpeområde: O(n)

Fjerner Python-sett

Set Clear()-metoden tømmer hele settet på plass.

Python3




# Python program to> # demonstrate clearing> # of set> set1>=> {>1>,>2>,>3>,>4>,>5>,>6>}> print>(>'Initial set'>)> print>(set1)> # This method will remove> # all the elements of the set> set1.clear()> print>(>' Set after using clear() function'>)> print>(set1)>

>

>

Produksjon:

Initial set {1, 2, 3, 4, 5, 6} Set after using clear() function set()>

Tidskompleksitet: O(n)
Hjelpeområde: O(n)

Imidlertid er det to store fallgruver i Python-sett:

  1. Settet opprettholder ikke elementer i noen spesiell rekkefølge.
  2. Bare forekomster av uforanderlige typer kan legges til et Python-sett.

Tidskompleksiteten til settene

Operasjon Gjennomsnittlig tilfelle Worst Case notater
x i s O(1) På)
Union s|t O(len(s)+len(t))
Kryss s&t O(min(len(s), len(t)) O(len(s) * len(t)) erstatt min med maks hvis t ikke er et sett
Multippelkryss s1&s2&..&sn (n-1)*O(l) hvor l er maks(len(s1),..,len(sn))
Forskjell s-t O(bare(r))

Operatører for sett

Sett og frosne sett støtter følgende operatører:

Operatører Notater
taste inn s inneslutningssjekk
nøkkel ikke i s ikke-innholdskontroll
s1 == s2 s1 tilsvarer s2
s1 != s2 s1 er ikke ekvivalent med s2
s1 <= s2 s1 er en delmengde av s2
s1 s1 er riktig delmengde av s2
s1>= s2 s1 er supersett av s2
s1> s2 s1 er riktig supersett av s2
s1 | s2 foreningen av s1 og s2
s1 og s2 skjæringspunktet mellom s1 og s2
s1 – s2 settet med elementer i s1 men ikke s2
s1 ˆ s2 settet med elementer i nøyaktig ett av s1 eller s2

Nylige artikler om Python Set.