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