Hirdetés

A python szótár olyan adatstruktúra, amely hasonló a többi programozási nyelven található asszociatív tömbhöz. Egy tömb vagy egy lista pozíció szerint indexeli az elemeket. A szótár viszont indexeli az elemeket kulcsok amelyek lehetnek húrok. Gondolj egy szótárra rendezetlen halmazként kulcs érték párok.

egy python szótár kulcs-érték pár

Ebben a cikkben bemutatjuk a Python szótár használatát.

Szótár létrehozása

A python szótár létrehozásának számos módja van. A legegyszerűbb zárójelekkel történő inicializálást használ szintaxissal a JSON-ra emlékeztet Hogyan kaphatunk Python-ot és JavaScript-et a JSON használatával történő kommunikációhoz?Ma megmutatom, hogyan lehet a JSON segítségével adatokat küldeni a JavaScript-ből a Python-ba. Bemutatom a webszerver beállítását, a szükséges kóddal együtt. Olvass tovább .

users = {'keresztnév': 'John', 'vezetéknév': 'Smith', 'életkor': 27}

Számot is használhat billentyűként. Legyen óvatos, ha lebegőpontos számokat használ kulcsokként, mivel a a számítógép ezeket közelítésként tárolja

instagram viewer
Minden, amit tudnia kell a RAM és a memóriakezelésrőlA RAM a számítógép rövid távú memóriája. Ezért a memóriakezelés jelentős hatással van a rendszer teljesítményére. Itt bemutatjuk, hogyan működik a RAM, és megtehetünk-e bármit a hatékonyság növelése érdekében. Olvass tovább .

rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} nyomtatás eső_percent. esőnyomtatás nyomtatása [1980] # nyomatok. {1980: '17%', 1981: '15%', 1982: '10%'} 17%

Kulcs-érték párok megadása

Készíthet és inicializálhat egy szótárat is, névérték-párok felhasználásával kulcsszó argumentumként a dict () konstruktőr.

népesség = dikt (Kalifornia = 37253956, Colorado = 5029196, Connecticut = 3574097, Delaware = 897934) nyomtatott népesség. # nyomatok. {'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196}

Kulcsértékű Tuples tömb

A szótár létrehozásának másik módja a kulcsérték-sorozat tömbjének használata. Itt ugyanaz a példa, mint fent.

párok = [('California', 37253956), ('Colorado', 5029196), ('Connecticut', 3574097), ('Delaware', 897934)] népesség = diktál (pár) nyomtatott népesség. # nyomatok. {'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196}

Dict megértés

A szöveg megértése hűvös szintaxist biztosít a diktátum inicializálásához, ha az értékeket a kulcsok alapján tudja kiszámítani. Az alábbiakkal inicializáljuk a számokat és a négyzetek értékeit egy számtartományra.

nyomtatás {x: x ** 2 x-re xrange-ban (10, 20)} # nyomatok. {10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17: 289, 18: 324, 19: 361}

Hogyan működik? Az utóbbi rész (x-re xrange-ban (10, 20)) egy megadott tartományba tartozó számtartományt ad vissza. A szöveg megértésének része ({x: x ** 2 ..}) hurkok ezen a tartományon, és inicializálja a szótárt.

Munka Python szótárral

Mit tehet a szótárakkal, miután létrehozta őket? Nos, hozzáférhet az elemekhez, frissítheti az értékeket, törölheti az elemeket stb.

Hozzáférés a Python szótár elemekhez

A zárójelben található kulcs segítségével érje el a kép elemet, akárcsak tenné tömb vagy lista Hogyan működnek a tömbök és a listák a PythonbanA tömbök és a listák a leghasznosabb adatstruktúrák a programozás során - bár kevés ember használja ki ezeket teljes mértékben. Olvass tovább .

nyomtatott népesség ['Delaware'] # nyomatok. 897934.

Ha a kulcs egy szám, akkor nem kell idézetekre. A kifejezés ezután úgy néz ki, mint egy lista vagy tömb indexelése.

esőnyomtatás nyomtatása [1980] # nyomatok. 17%

A kulcs típusának a hozzáféréskor meg kell egyeznie azzal, amit a Python szótárban tárolnak. Az alábbiak hibát okoznak, mivel a tárolt kulcsok számok, míg a hozzáférési kulcs egy karakterlánc.

x = '1980' eső_percent nyomtatása [x] # eredmény: 1 x = '1980' > 2 nyomtatás esőszázalékban [x] KeyError: '1980'

Nem létező kulcs elérése egy hiba.

rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} nyomtatás rain_percent [1983] # nyomatok 1 esőszázalék = {1980: '17% ', 1981: '15%', 1982: '10% '} > 2 esőnyomtatás [1983] KeyError: 1983.

Kulcs eléréséhez és alapértelmezett érték megadásához, ha a leképezés nem létezik, használja a kap() módszer, amelynek alapértelmezett értéke a második argumentum.

nyomtatás rain_percent.get (1985, '0%') # nyomatok. 0%

Létezés ellenőrzése

Mi lenne, ha ellenőrizni szeretné egy kulcs jelenlétét anélkül, hogy ténylegesen megkísérelte volna elérni azt (és valószínűleg a KeyError mint fent)? Használhatja a ban ben kulcsszó az űrlapon kulcs dct-ben amely egy logikai értéket ad vissza.

1980 nyomtatása esőben. '1980' nyomtatás esőben. # nyomatok. Igaz. Hamis. 

Fordítsa meg a feltételt (azaz győződjön meg arról, hogy a kulcs nincs jelen a Python szótárban) az űrlap használatával kulcs nem dct. Ez megegyezik a szokásos python-tagadással ne írja be a dct értéket.

1980 nyomtatása nem esőben. nyomtatás 1985 nem esőben. # nyomatok. Hamis. Igaz. 

Elemek módosítása

Az értéket megváltoztathatja a kívánt kulcshoz rendeléssel.

users = {'keresztnév': 'John', 'vezetéknév': 'Smith', 'életkor': 27} felhasználók ['életkor'] = 29. nyomtatott felhasználók. # nyomatok. {'vezetéknév': 'Smith', 'életkor': 29, 'keresztnév': 'John'}

Ugyanezen szintaxissal új leképezést adhat a Python szótárhoz.

felhasználók ['dob'] = '15 -sep-1971 ' nyomtatott felhasználók. # nyomatok. {'dob': '15 -sep-1971 ',' vezetéknév ':' Smith ',' életkor ': 29,' keresztnév ':' John '}

Frissítse a szótár több elemét egy felvétel segítségével a frissítés () eljárás.

users = {'keresztnév': 'John', 'vezetéknév': 'Smith', 'életkor': 27} users.update ({'életkor': 29, 'dob': '15 -sep-1971 '}) nyomtatott felhasználók. # nyomatok. {'dob': '15 -sep-1971 ',' vezetéknév ':' Smith ',' életkor ': 29,' keresztnév ':' John '}

Állítsa be a kulcs alapértelmezett értékét a gombbal alapértelmezettre állítás(). Ez a módszer beállítja a kulcs értékét, ha a leképezés nem létezik. Visszaadja az aktuális értéket.

# nem változtatja meg az aktuális értéket. print users.setdefault ('keresztnév', 'Jane') # nyomatok. John # beállítja az értéket. print users.setdefault ('város', 'NY') # nyomatok. NY # Végleges érték. nyomtatott felhasználók. # nyomatok. {"vezetéknév": "Smith", "életkor": 27, "keresztnév": "John", "város": "NY"}

Elemek törlése

Törölje a leképezéseket a szótárból a del operátor. Ez az operátor semmit nem ad vissza.

Találkozni fogsz egy a KeyError ha a kulcs nem létezik a szótárban.

users = {'keresztnév': 'John', 'vezetéknév': 'Smith', 'életkor': 27} del felhasználók ['életkor'] nyomtatott felhasználók. # nyomatok. {'vezetéknév': 'Smith', 'keresztnév': 'John'}

Használja a pop() Ehelyett, ha vissza akarja venni a törölt értéket.

users = {'keresztnév': 'John', 'vezetéknév': 'Smith', 'életkor': 27} print users.pop ('életkor') nyomtatott felhasználók. # nyomatok. 27. {'vezetéknév': 'Smith', 'keresztnév': 'John'}

Mi van, ha törölni szeretne egy kulcsot, ha létezik, anélkül, hogy hibát okozna, ha nem? Te tudod használni pop() és adja meg Egyik sem a második érvre a következőképpen:

users = {'keresztnév': 'John', 'vezetéknév': 'Smith', 'életkor': 27} users.pop ('foo', Nincs) nyomtatott felhasználók. # nyomatok. {'vezetéknév': 'Smith', 'életkor': 27, 'keresztnév': 'John'}

És itt van egy egysoros, amely egy csomó kulcsot törölhet a szótárból anélkül, hogy hibát okozna a nem létező kulcsokon.

felhasználók = {'keresztnév': 'John', 'vezetéknév': 'Smith', 'életkor': 27, 'dob': '15 -sep-1971 '} térkép (lambda x: users.pop (x, Nincs), ['életkor', 'foo', 'dob']) nyomtatott felhasználók.

Szeretne törölni az összes kulcsot a szótárból? Használja a egyértelmű() eljárás.

users = {'keresztnév': 'John', 'vezetéknév': 'Smith', 'életkor': 27} users.clear () nyomtatott felhasználók. # nyomatok. {}

Hurok a Python szótárakkal

A Python sokat kínál hurkolás módszerei Hogyan működnek a hurkok a számítógépes programozásban?A hurkok az egyik első vezérlőtípus, amelyet a programozás során megtanulnak. Valószínűleg tudod, hogy mikor és milyen hurkokról van szó, de mit tud elérni a rövid ideig tartó hurok? Olvass tovább a szótár bejegyzései felett. Válasszon egyet az Ön igényei szerint.

Hurok a kulcsok felett

  • A kulcsok (és valószínűleg az értékek) sorrendben történő feldolgozásának legegyszerűbb módszere az alábbi hurkot használja:
    users = {'keresztnév': 'John', 'vezetéknév': 'Smith', 'életkor': 27} k esetében a felhasználókban: k nyomtatás, '=>', felhasználók [k] # nyomatok. vezetéknév => Smith. életkor => 27. keresztnév => John.
  • A módszer használata iterkeys () pontosan ugyanaz, mint a fentiek. Válassza ki, hogy melyik űrlapot kívánja használni.
    users = {'keresztnév': 'John', 'vezetéknév': 'Smith', 'életkor': 27} k esetében a users.iterkeys () -ben: k nyomtatás, '=>', felhasználók [k] # nyomatok. vezetéknév => Smith. életkor => 27. keresztnév => John.
  • A kulcsok hurokban történő kinyerésének és feldolgozásának harmadik módszere a beépített funkció használata iter ().
    users = {'keresztnév': 'John', 'vezetéknév': 'Smith', 'életkor': 27} k esetében iterben (felhasználók): kinyomtatni k, '=>', felhasználók [k] # nyomatok. vezetéknév => Smith. életkor => 27. keresztnév => John.
  • Ha szüksége van a feldolgozásra kerülő kulcs indexére, használja a Enumerate () beépített funkció az ábra szerint.
    users = {'keresztnév': 'John', 'vezetéknév': 'Smith', 'életkor': 27} indexhez, kulcs a felsoroláshoz (felhasználók): index nyomtatás, kulcs, '=>', felhasználók [k] # nyomatok. 0 vezetéknév => John. 1 életkor => John. 2 utónév => John.

Kihúzás a kulcs-érték párok között

  • Ha az egyes kulcsérték-párokat egyetlen hívással szeretné lekérni, használja iteritems ().
    users = {'keresztnév': 'John', 'vezetéknév': 'Smith', 'életkor': 27} k, v esetén a users.iteritems () esetében: k nyomtatás, '=>', v. # nyomatok. vezetéknév => Smith. életkor => 27. keresztnév => John.

Az értékek túlzott mértékének mérése

  • A módszer, a metódus itervalues ​​() használható a szótár összes értékének iterálására. Bár ez a módszer hasonló a felhasznált hurokhoz értékeket (), hatékonyabb, mivel nem hozza ki az összes értéket egyszerre.
    users = {'keresztnév': 'John', 'vezetéknév': 'Smith', 'életkor': 27} értékre a users.itervalues ​​(): nyomtatási érték. # nyomatok. Kovács. 27. János.

Tömbök kibontása

A következő módszerek leírják a különféle Python szótár információk kibontását tömb formában. A kapott tömb normál python konstrukciókkal áthúzható. Ne feledje azonban, hogy a visszaadott tömb a szótár méretétől függően nagy is lehet. Szóval lehet, hogy több drága (memória-bölcs) ezeknek a tömböknek a feldolgozása, mint a fenti iterator módszerek használata.

Az egyik eset, amikor ezekkel a tömbökkel dolgozni lehet, amikor elemeket törölni kell a szótárból, mivel nemkívánatos elemekkel találkozik. Az iteratorral végzett munka a szótár módosításakor RuntimeError fájlt okozhat.

  • A módszer, a metódus elemek () egy kulcsérték-tupla tömböt ad vissza. Az alábbiak szerint iterálhat ezen kulcs-érték párok felett:
    users = {'keresztnév': 'John', 'vezetéknév': 'Smith', 'életkor': 27} k, v esetén a users.items () esetében: k nyomtatás, '=>', v. # nyomatok. vezetéknév => Smith. életkor => 27. keresztnév => John.
  • A módszer használatával töltse le a szótár összes kulcsát kulcsok().
    users = {'keresztnév': 'John', 'vezetéknév': 'Smith', 'életkor': 27} nyomtassa ki a felhasználói kulcsokat () # nyomatok. ['vezetéknév', 'életkor', 'utónév']

    Használja a visszatért tömböt a kulcsok áthúzására.

    k esetében a users.keys () -ben: kinyomtatni k, '=>', felhasználók [k] # nyomatok. vezetéknév => Smith. életkor => 27. keresztnév => John.
  • Hasonló módon használja a módszert értékeket () az összes érték beolvasása a szótárban.
    érték a user.values ​​() értékben: nyomtatási érték. # nyomatok. Kovács. 27. János. 

Hogyan használja a Python szótárakat?

Ebben a cikkben megpróbáltuk lefedni a python szótárak leggyakoribb eseteit. Ne felejtsd el megnézni mindannyiunkat egyéb Python cikkek 10 alapvető Python-példa, amelyek segítenek a gyors tanulásbanEz a cikk az alapvető python példákról szól azok számára, akik már rendelkeznek valamilyen programozási tapasztalattal és egyszerűen csak a lehető leggyorsabban akarnak átmenni a Python-ba. Olvass tovább egyenletesen további Python-tippeket 5 tanfolyam, amely elvisz a Python Beginner-től a Pro-igEz az öt tanfolyam mindent megtanít a programozásra a Pythonban, amely jelenleg az egyik legforróbb nyelv. Olvass tovább . Ha más felhasználási esete van, úgy érzi, hogy fel kell venni, kérjük, ossza meg velünk az alábbi megjegyzésekben!

Kép-jóváírások: viper345 / Shutterstock