logo

Asettaa Pythonissa

Python-ohjelmoinnin joukko on järjestämätön kokoelmatietotyyppi, joka on iteroitavissa, muuttuva ja jossa ei ole päällekkäisiä elementtejä.

Joukkoa edustaa { } (arvot on suljettu aaltosulkeissa)



Sarjan käytön suurin etu verrattuna a lista , on se, että sillä on erittäin optimoitu menetelmä sen tarkistamiseksi, sisältyykö joukkoon tietty elementti. Tämä perustuu tietorakenteeseen, joka tunnetaan nimellä hash-taulukko. Koska joukot ovat järjestämättömiä, emme voi käyttää nimikkeitä indeksien avulla kuten luetteloissa.

Esimerkki Python-sarjoista

Python 3








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

>

>

Lähtö:

set>

Aika monimutkaisuus: O(1)
Aputila: O(1)

Kirjoita Casting Python Set -menetelmällä

Tyyppivalussa käytetään Python set() -menetelmää.

Python 3




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

java merkkijonoja
>

>

Lähtö:

Python-joukko on järjestämätön tietotyyppi, mikä tarkoittaa, että emme voi tietää, missä järjestyksessä joukon elementit on tallennettu.

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

Aika monimutkaisuus: O(n)
Aputila: O(n)

Tarkista ainutlaatuinen ja muuttumaton Python-sarjan avulla

Python-joukoilla ei voi olla päällekkäistä arvoa, ja kun se on luotu, emme voi muuttaa sen arvoa.

Python 3




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

>

>

Lähtö:

Ensimmäinen koodi selittää, että joukolla ei voi olla päällekkäistä arvoa. Jokainen siinä oleva esine on ainutlaatuinen arvo.

Toinen koodi tuottaa virheen, koska emme voi määrittää tai muuttaa arvoa, kun joukko on luotu. Voimme lisätä tai poistaa vain kohteita sarjassa.

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

Heterogeeninen elementti Python-sarjalla

Python-joukot voivat tallentaa siihen heterogeenisiä elementtejä, eli joukko voi tallentaa seoksen merkkijono-, kokonaisluku-, boolean- jne. tietotyyppejä.

Python 3




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

>

>

Lähtö:

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

Aika monimutkaisuus: O(n)
Aputila: O(n)

yksinkertainen java ohjelma

Pythonin jäädytetyt joukot

Jäädytetyt setit Pythonissa ovat muuttumattomia objekteja, jotka tukevat vain menetelmiä ja operaattoreita, jotka tuottavat tuloksen vaikuttamatta jäädytettyyn joukkoon tai sarjoihin, joihin niitä sovelletaan. Se voidaan tehdä Pythonissa frozenset()-menetelmällä.

Vaikka joukon elementtejä voidaan muokata milloin tahansa, jäädytetyn joukon elementit pysyvät samoina luomisen jälkeen.

Jos parametreja ei välitetä, se palauttaa tyhjän jäädytetyn joukon.

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

>

>

Lähtö:

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

Aika monimutkaisuus: O(n)
Aputila: O(n)

Setin sisäinen toiminta

Tämä perustuu tietorakenteeseen, joka tunnetaan nimellä hash-taulukko. Jos samassa indeksikohdassa on useita arvoja, arvo liitetään kyseiseen indeksipaikkaan linkitettyjen listan muodostamiseksi.

Python-joukot on toteutettu käyttämällä sanakirjaa, jossa on valemuuttujia, joissa avainolennot jäsenet asettavat suuremmilla optimoinnilla ajan monimutkaisuuteen.

Aseta toteutus:

Sarjat Pythonissa - Sisäinen toiminta

Sarjat, joissa on useita toimintoja yhdessä hash-taulukossa:

Asettaa Pythonissa - Hash-taulukko

Menetelmät sarjoille

Elementtien lisääminen Python-sarjoihin

Asettaminen sarjaan tapahtuu kautta set.add( ) -funktio, jossa luodaan sopiva tietuearvo tallennettavaksi hash-taulukkoon. Sama kuin kohteen tarkistaminen, eli O(1) keskimäärin. Siitä voi kuitenkin pahimmassa tapauksessa tulla Päällä) .

Python 3




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

vastaava merkkijono javassa

>

>

Lähtö:

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

Aika monimutkaisuus: O(n)
Aputila: O(n)

Unionin toiminta Python-sarjoissa

Kaksi joukkoa voidaan yhdistää käyttämällä union()-funktiota tai | operaattori. Molempiin hajautustaulukon arvoihin päästään ja ne kuljetetaan yhdistämistoiminnon avulla elementtien yhdistämiseksi, samalla kun kaksoiskappaleet poistetaan. Aika monimutkaisuus tässä on O(lin(s1) + lins(s2)) missä s1 ja s2 ovat kaksi joukkoa, joiden yhdistäminen on tehtävä.

Python 3




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

>

>

Lähtö:

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

Aika monimutkaisuus: O(n)
Aputila: O(n)

Risteystoiminto Python-sarjoissa

Tämä voidaan tehdä intersection()- tai &-operaattorilla. Yleiset elementit on valittu. Ne ovat samanlaisia ​​kuin iteraatio hash-luetteloiden yli ja yhdistävät samat arvot molemmissa taulukoissa. Aika Tämän monimutkaisuus on O(min(len(s1), len(s2)), missä s1 ja s2 ovat kaksi joukkoa, joiden yhdistäminen on tehtävä.

Python 3




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

>

>

Lähtö:

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

Aika monimutkaisuus: O(n)
Aputila: O(n)

Joukkoerojen löytäminen Pythonissa

Etsiä eroja sarjojen välillä. Sama kuin erojen löytäminen linkitetystä luettelosta. Tämä tehdään different()- tai –-operaattorilla. Eron s1 – s2 löytämisen aikamonimutkaisuus on O(len(s1))

Python 3




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

>

>

Lähtö:

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

Aika monimutkaisuus: O(n)
Aputila: O(n)

Python-sarjojen tyhjentäminen

Set Clear() -metodi tyhjentää koko joukon paikoilleen.

Python 3




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

>

java concat merkkijonot

>

Lähtö:

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

Aika monimutkaisuus: O(n)
Aputila: O(n)

Python-sarjoissa on kuitenkin kaksi suurta sudenkuoppaa:

  1. Sarja ei säilytä elementtejä missään tietyssä järjestyksessä.
  2. Python-joukkoon voidaan lisätä vain muuttumattomien tyyppien esiintymiä.

Sarjojen aika monimutkaisuus

Operaatio Keskimääräinen tapaus Pahimmassa tapauksessa muistiinpanoja
x s O(1) Päällä)
Unionin s|t O(lin(t)+len(t))
Risteys s&t O(min(lin(t), len(t)) O(lin(t) * len(t)) korvaa min arvolla max, jos t ei ole joukko
Useita risteyksiä s1&s2&..&sn (n-1)*O(l) jossa l on max(len(s1),..,len(sn))
Ero s-t O (vain(t))

Operaattorit sarjoille

Sarjat ja jäädytetyt sarjat tukevat seuraavia operaattoreita:

Operaattorit Huomautuksia
näppäile s suojauksen tarkistus
avain ei sisällä s ei-sulkutarkastus
s1 == s2 s1 vastaa s2:ta
s1 ! = s2 s1 ei vastaa s2:ta
s1 <= s2 s1 on s2:n osajoukko
s1 s1 on s2:n oikea osajoukko
s1>= s2 s1 on s2:n superjoukko
s1> s2 s1 on s2:n oikea superjoukko
s1 | s2 s1:n ja s2:n liitto
s1 & s2 s1:n ja s2:n leikkauspiste
s1 - s2 elementtien joukko s1:ssä mutta ei s2:ssa
s1 ˆ s2 elementtijoukko täsmälleen s1:stä tai s2:sta

Viimeisimmät artikkelit Python Setistä.