A Python set egy egyedi literál egy listában vagy egy elemcsoportban lévő különálló értékek szűrésére. A Python listával, szótárral vagy duplával ellentétben ez nem fogad el másolatokat. Tehát értékes adattisztító eszköz lehet.

De hogyan lehet létrehozni egy halmazt és használni a Pythonban? Ezt ebben a bejegyzésben elmagyarázzuk.

A Python készletek jellemzői

Amellett, hogy a halmaz literál nem fogadja el a duplikátumokat, más jellemzői vannak, amelyek megkülönböztetik más adattípusoktól. Íme néhány jellemzője:

  • Változhatatlan: ez azt jelenti, hogy a készletek létrehozása után nem változtathatja meg a halmaz értékeit.
  • A beállított literál dinamikus elrendezést ad vissza minden egyes létrehozásakor. Lényegében a készlet elemei rendezetlenek.
  • Mivel rendezetlen elemeket mutat be, ellentétben a lista- és szótár literálokkal, nem lehet egy halmaz értékét megkapni indexük alapján.

Hogyan készítsünk és használjunk Python készletet

Most, hogy ismeri a Python készlet alapvető jellemzőit. Nézzük meg néhány módját annak, hogyan használhatja a programjában.

Göndör kapcsos zárójelekkel hozhat létre halmazt a Pythonban. Tehát egy készlet a göndör zárójelben szereplő elemek vesszővel elválasztott listája:

mySet = {1, 2, "MUO", "Google"}
nyomtatás (mySet)
Kimenet: {1, 2, "MUO", "Google"}

Bármely más adattípust átalakíthat készletgé is. Például az alábbi kód egy listát alakít halmazsá:

myList = [1, 2, "MUO", "Google"]
mySet = set (myList)
nyomtatás (mySet)
Kimenet: {1, 2, "MUO", "Google"}

Az biztos lehet, hogy ellenőrizheti az adatok típusát mySet:

myList = [1, 2, "MUO", "Google"]
mySet = set (myList)
nyomtatás (típus (mySet))
Kimenet:

Mint korábban említettük, egy készlet nem fogad el másolatokat. Ez a szolgáltatás hasznos lehet, ha egy tömböt meg akar tisztítani az ismétlődő értékek eltávolításával.

Az alábbi kód eltávolítja a duplikátumokat egy listából, és a kimenetet Python készletként mutatja be:

myList = [1, 2, 2 "MUO", "MUO", "Google", "Google"]
mySet = set (myList)
nyomtatás (mySet)
Kimenet: {1, 2, 'MUO', 'Google'}

A halmaz szűrési szolgáltatásának további bemutatásához a halmaz hosszának kinyomtatásakor az nem számít duplikált értékeket:

mySet = {1, 2, 2, "MUO", "MUO", "Google", "Google"}
nyomtatás (len (mySet))
Kimenet: 4

A készlet jobb felhasználási esetének megtekintéséhez távolítsuk el a másolatokat a következő tömbből. Ez olyan, mintha lekérdeznénk az egyedi kulcsokat egy tömbben.

Ehhez konvertáljon szótárt halmazsá:

myDiction = {
"Mango": 2, "Narancs": 2, "sárgarépa": 2, "MUO": "tech",
"MUO": "web", "Google": "keresés", "Google": "motor"
}
uniqueSet = set (myDiction)
print ("Ezek az egyedi kulcsok: {}". format (uniqueSet))
Kimenet: Ezek az egyedi kulcsok: {'Google', 'Mango', 'MUO', 'Orange', 'sárgarépa}

A fenti átalakítás automatikusan eltávolítja a duplikált elemeket a tömbből.

A fenti kódot módosíthatja egy for ciklust használ hogy világosabb legyen:

az egyediSet egyedi elemei számára:
nyomtatás (egyedi)

Két halmazhoz is csatlakozhat a unió() módszer:

setA = {1, 3, 5}
setB = {1, 4, 6}
newSet = setA.union (setB)
nyomtatás (newSet)
Kimenet: {1, 3, 4, 5, 6}

A fenti kód azonban összekapcsolja a két halmazt, és eltávolítja az ismétlődő értékeket.

Alternatív megoldásként használhatja a csövet | függvény halmazok egyesítéséhez a Python-ban:

setA = {1, 3, 5}
setB = {1, 4, 6}
newSet = setA | setB
nyomtatás (newSet)
Kimenet: {1, 3, 4, 5, 6}

Megtalálható a Python két halmaza közötti különbség is:

setA = {1, 3, 5}
setB = {2, 4, 5,}
nyomtatás (setA.difference (setB))
Kimenet: {1, 3}

Megtalálható az A és B halmazok közötti szimmetrikus különbség. Ez a módszer bármelyik halmazban visszaadja az elemeket, de kizárja azok metszéspontjait. Lássuk, hogyan működik ez:

setA = {1, 3, 5}
setB = {2, 4, 5,}
nyomtatás (setA ^ setB)
Kimenet: {1, 2, 3, 4}

Alternatív megoldásként használhatja a szimmetrikus_különbség () módszer:

setA = {1, 3, 5}
setB = {2, 4, 5,}
nyomtatás (setA.symmetric_difference (setB))
Kimenet: {1, 2, 3, 4}

Lássuk azt is, hogyan találhatja meg az alábbi halmazok metszéspontját:

setA = {1, 3, 5}
setB = {1, 4, 6}
setC = {1, 5, 4}
newSet = setA.intersection (setB, setC)
nyomtatás (newSet)
Kimenet: {1}

Amíg lehet csatolja a Python listájához, ugyanazt nem teheti meg egy Python készlet esetén. A halmaz végére azonban hozzáadhat egy elemet a hozzá funkció.

De a Python hozzá függvény elfogad egy argumentumot, így csak egy duplát adhat hozzá egy halmazhoz. Ez egy beágyazott halmazt ad vissza:

setA = {1, 3, 5} setC = {1, 3}
newSet = 1, 6
setC.add (newSet)
nyomtatás (setC)
Kimenet: {1, (1, 6), 3}

A Python halmaz a isdisjoint () módszer annak ellenőrzésére, hogy két halmaz szét van-e választva. Ezután egy logikai értéket ad vissza:

setA = {1, 3, 5}
setB = {1, 4, 6}
findDisjoint = setA.isdisjoint (setB)
print ("Ez az a}, hogy a setA B elkülönülése.
Kimenet: Hamis, hogy a setA B szétválasztása

Annak ellenőrzéséhez, hogy egy halmaz egy másik részhalmaza-e, cserélje le isdisjoint () val vel issubset ():

findSubset = setA.issubset (készletB)

Elemeket eltávolíthat egy készletből:

setA = {1, 3, 5}
setA.remove (5)
nyomtatás (setA)
Kimenet: {1, 3}

A egyértelmű() A method törli a halmaz elemeit és egy üres halmazt ad vissza:

setA = {1, 3, 5}
setA.clear ()
nyomtatás (setA)
Kimenet: set ()

Eltávolíthat egy tetszőleges elemet egy halmazból, és visszaadhatja annak értékét a set.pop () módszer:

setA = {1, 3, 5}
nyomtatás (setA.pop ())

A Python készletet a update () módszerrel is frissítheti:

setA = {1, 'b'}
setB = {2, 4, 5,}
nyomtatás (setA.update (setB))
nyomtatás (setA)
Kimenet: {1, 2, 4, 5, 'b'}

Play körül a Python készletek

Bár láttuk, hogyan használhat egy halmazt a Pythonban, még mindig vannak más praktikus módszerek a kódban való alkalmazására. Mint látta, ez még hasznos is lehet, miközben az adatokat a Python segítségével tisztítja.

Egy halmaz mellett más Python adattípusoknak vagy tömböknek számos felhasználási lehetőségük és különféle alkalmazásuk van. Próbálj meg velük játszani, hogy jobban lógjon rajtuk.

Email
A tömbök és listák működése a Pythonban

A tömbök és a listák a leghasznosabb adatstruktúrák a programozásban - bár kevesen használják ki teljes mértékben.

Olvassa el a következőt

Kapcsolódó témák
  • Programozás
  • Piton
A szerzőről
Idowu Omisola (60 cikk megjelent)

Idowu minden okos technológiával és termelékenységgel rajong. Szabadidejében kódolással játszik, és ha unatkozik, áttér a sakktáblára, de imád egyszer-egyszer elszakadni a rutintól. Az a szenvedély, hogy megmutatja az embereknek a modern technológiát, további írásra ösztönzi.

Tovább Idowu Omisolától

Iratkozzon fel hírlevelünkre

Csatlakozzon hírlevelünkhöz, amely műszaki tippeket, véleményeket, ingyenes e-könyveket és exkluzív ajánlatokat tartalmaz!

Még egy lépés…!

Kérjük, erősítse meg e-mail címét az imént elküldött e-mailben.

.