Skelbimas

Python žodynas yra duomenų struktūra, panaši į asociacinį masyvą, randamą kitose programavimo kalbose. Masyvas arba sąrašas indeksuoja elementus pagal vietą. Kita vertus, žodynas indeksuoja elementus raktai kurios gali būti stygos. Pagalvokite apie žodyną kaip netvarkytus rinkinius rakto vertė porų.

Python žodyno raktų ir reikšmių poros

Šiame straipsnyje mes supažindiname jus su darbu su python žodynu.

Žodyno kūrimas

Yra keletas būdų, kaip sukurti python žodyną. Paprasčiausiasis variantas yra petnešų inicijavimas, naudojant sintaksę primena JSON Kaip gauti „Python“ ir „JavaScript“ ryšius naudojant JSONŠiandien aš jums parodysiu, kaip naudoti JSON, norint siųsti duomenis iš „JavaScript“ į Python. Aš aprašysiu, kaip nustatyti žiniatinklio serverį, kartu su visu kodu, kurio jums reikia. Skaityti daugiau .

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27}

Skaičius taip pat galite naudoti kaip klavišus. Tačiau būkite atsargūs, naudodami slankiojo kablelio numerius kaip raktus, nes Kompiuteris juos saugo kaip apytikslį

instagram viewer
Viskas, ką reikia žinoti apie RAM ir atminties valdymąRAM yra jūsų kompiuterio trumpalaikė atmintis. Taigi atminties valdymas daro didelę įtaką sistemos veikimui. Čia paaiškiname, kaip veikia RAM ir ar galite ką nors padaryti, kad padidintumėte jo efektyvumą. Skaityti daugiau .

rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} spausdinti rain_percent. spausdinti rain_percent [1980] # atspausdina. {1980: '17%', 1981: '15%', 1982: '10%'} 17%

Nurodomos raktų vertės poros

Taip pat galite sukurti ir inicijuoti žodyną naudodami pavadinimo reikšmių poras kaip raktinių žodžių argumentus diktuoti () konstruktorius.

gyventojų skaičius = diktas (Kalifornija = 37253956, Koloradas = 5029196, Konektikutas = 3574097, Delaveras = 897934) spaudos populiacija. # atspausdina. {„Konektikutas“: 3574097, „Delaveras“: 897934, „Kalifornija“: 37253956, „Koloradas“: 5029196}

Pagrindinės vertės dvigubų paveiksliukų masyvas

Kitas būdas sukurti žodyną yra naudoti masyvą raktų vertės gairių. Čia yra tas pats pavyzdys, kaip aukščiau.

poros = [('California', 37253956), ('Colorado', 5029196), ('Connecticut', 3574097), ('Delaware', 897934)] gyventojų skaičius = diktas (poros) spaudos populiacija. # atspausdina. {„Konektikutas“: 3574097, „Delaveras“: 897934, „Kalifornija“: 37253956, „Koloradas“: 5029196}

Dikto supratimas

Dikto supratimas suteikia puikią sintaksę, kad būtų galima inicijuoti diktofoną, jei reikšmes galite apskaičiuoti pagal klavišus. Toliau pateikiamas skaičių diapazono ir kvadrato verčių paveikslėlis.

atspausdinkite {x: x ** 2, kad x būtų xrange (10, 20)} # atspausdina. {10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17: 289, 18: 324, 19: 361}

Kaip tai veikia? Paskutinė dalis (x x xrange (10, 20)) grąžina nurodyto diapazono skaičių seką. Dikto supratimo dalis ({x: x ** 2 ..}) perkelia šį diapazoną ir inicijuoja žodyną.

Darbas su Python žodynu

Ką galite padaryti su žodynais, juos sukūrę? Na, jūs galite pasiekti elementus, atnaujinti reikšmes, ištrinti elementus ir kt.

Prieiga prie Python žodyno elementų

Prieikite prie vaizdo elemento, naudodami skliausteliuose esantį klavišą, kaip jūs norėtumėte masyvas ar sąrašas Kaip masyvai ir sąrašai veikia Python'eMasyvai ir sąrašai yra keletas naudingiausių programavimo duomenų struktūrų - nors tik nedaugelis žmonių naudojasi jomis visu savo potencialu. Skaityti daugiau .

spaudos populiacija ['Delaveras'] # atspausdina. 897934.

Jei raktas yra skaičius, kabučių jums nereikia. Tada posakis atrodo kaip sąrašas arba masyvo indeksavimas.

spausdinti rain_percent [1980] # atspausdina. 17%

Klavišo tipas, kurį reikia pasiekti, turi atitikti tai, kas saugoma Python žodyne. Tai sukelia klaidą, nes saugomi raktai yra skaičiai, o prieigos raktas yra eilutė.

x = '1980' spausdinti rain_percent [x] # rezultatai 1 x = '1980' > 2 spausdinti „rain_percent“ [x] „KeyError“: „1980“

Prieiga prie neegzistuojančio rakto yra klaida.

rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} spausdinti rain_percent [1983] # spausdina 1 rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} > 2 spausdinti „rain_percent“ [1983 m.] „KeyError“: 1983 m.

Norėdami pasiekti raktą ir pateikti numatytąją vertę, jei atvaizdavimo nėra, naudokite gauti () metodas su numatytąja reikšme kaip antrasis argumentas.

spausdinti rain_percent.get (1985 m., „0%“) # atspausdina. 0%

Egzistencijos patikrinimas

Ką daryti, jei norite patikrinti, ar nėra rakto, iš tikrųjų nemėgindami jo pasiekti (ir galbūt susidūrę su raktu „KeyError“ kaip aukščiau)? Galite naudoti į raktinis žodis formoje raktas į dct kuris grąžina loginį.

spausdinti 1980 m. lietaus centre. spausdinti „1980“ lietaus centre. # atspausdina. Tiesa. Melagingas. 

Pakeiskite sąlygą (t. Y. Įsitikinkite, kad rakto nėra Python žodyne) naudokite formą raktas ne dct. Tai prilygsta standartiniam python neigimui ne raktas į dct.

spausdinti 1980 m. ne per lietų. spausdinti 1985 m. ne per lietų. # atspausdina. Melagingas. Tiesa. 

Modifikuojantys elementai

Pakeiskite reikšmę priskirdami reikiamą raktą.

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} vartotojų ['amžius'] = 29. spausdinimo vartotojai. # atspausdina. {'pavardė': 'Smith', 'amžius': 29, 'vardas': 'John'}

Naudokite tą pačią sintaksę, norėdami pridėti naują atvaizdą į Python žodyną.

vartotojai ['dob'] = '15 -sep-1971 ' spausdinimo vartotojai. # atspausdina. {'dobas': '15 -sep-1971 ',' pavardė ':' Smith ',' amžius ': 29,' vardas ':' John '}

Atnaujinkite kelis žodyno elementus vienu kadru naudodami atnaujinti () metodas.

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.update ({'amžius': 29, 'dob': '15 -sep-1971 '}) spausdinimo vartotojai. # atspausdina. {'dobas': '15 -sep-1971 ',' pavardė ':' Smith ',' amžius ': 29,' vardas ':' John '}

Nustatykite numatytąją rakto reikšmę naudodami nustatyti numatytąjį(). Šis metodas nustato rakto vertę, jei atvaizdavimo nėra. Tai grąžina dabartinę vertę.

# nekeičia dabartinės vertės. spausdinti users.setdefault ('vardas', 'Jane') # atspausdina. Jonas # nustato vertę. spausdinti users.setdefault („miestas“, „NY“) # atspausdina. NY # Galutinė vertė. spausdinimo vartotojai. # atspausdina. {'pavardė': 'Smith', 'age': 27, 'firstname': 'John', 'city': 'NY'}

Elementų trynimas

Ištrinkite atvaizdus žodyne naudodami del operatorius. Šis operatorius nieko negrąžina.

Jūs susidursite su „KeyError“ jei rakto žodyne nėra.

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} del vartotojai ['amžius'] spausdinimo vartotojai. # atspausdina. {'pavardė': 'Smith', 'vardas': 'John'}

Naudoti pop () vietoj to, kai norite, kad ištrinta vertė būtų grąžinta.

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} spausdinti users.pop ('amžius') spausdinimo vartotojai. # atspausdina. 27. {'pavardė': 'Smith', 'vardas': 'John'}

Ką daryti, jei norite ištrinti raktą, jei jo yra, nesukeliant klaidos, jei jo nėra? Tu gali naudoti pop () ir patikslinkite Nė vienas dėl antrojo argumento taip:

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.pop („foo“, nėra) spausdinimo vartotojai. # atspausdina. {'pavardė': 'Smith', 'amžius': 27, 'vardas': 'John'}

Ir čia yra vienas įdėklas, išbraukiantis daugybę raktų iš žodyno, nesukeliant klaidų neegzistuojančiuose klavišuose.

vartotojai = {'vardas ":' Jonas ',' pavardė ':' Smith ',' amžius ': 27,' dob ': '15 -sep-1971'} žemėlapis („lambda x“: users.pop (x, nėra), ['amžius', 'foo', 'dobas')) spausdinimo vartotojai.

Norite ištrinti visus klavišus iš žodyno? Naudoti išvalyti () metodas.

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.clear () spausdinimo vartotojai. # atspausdina. {}

„Looping With Python“ žodynai

Python'as teikia daug metodai kilpoms Kaip „ciklų kilpos“ veikia kompiuterinio programavimo metuKilpos yra viena iš pirmųjų valdymo tipų, kurių išmoksite programuodami. Jūs tikriausiai žinote apie laiką, o ne apie kilpas, bet ką daro trumpalaikė kilpa? Skaityti daugiau per žodyno įrašus. Pasirinkite vieną, kad atitiktų jūsų poreikius.

Kilpos per raktus

  • Paprasčiausias raktų (ir galbūt reikšmių) apdorojimo seka metodas naudoja formos kilpą:
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} k vartotojams: spausdinti k, '=>', vartotojams [k] # atspausdina. pavardė => Smithas. amžius => 27. vardas => Jonas.
  • Naudojant metodą iterkeys () veikia lygiai taip pat, kaip aukščiau. Pasirinkite, kurią formą norite naudoti.
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} K vartotojams.iterkeys (): spausdinti k, '=>', vartotojams [k] # atspausdina. pavardė => Smithas. amžius => 27. vardas => Jonas.
  • Trečiasis būdas gauti ir apdoroti raktus kilpoje apima įmontuotos funkcijos naudojimą iter ().
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} „k in iter“ (vartotojams): atspausdinti „,>“, vartotojams [k] # atspausdina. pavardė => Smithas. amžius => 27. vardas => Jonas.
  • Kai jums reikia apdorojamo rakto rodyklės, naudokite surašyti () įmontuota funkcija, kaip parodyta.
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} rodyklė, raktas įrašyti (vartotojai): spausdinimo rodyklė, raktas, '=>', vartotojai [k] # atspausdina. 0 pavardė => Jonas. 1 amžius => Jonas. 2 vardas => Jonas.

Silpnos vertės vertės poros

  • Jei norite gauti kiekvieną rakto reikšmių porą vienu skambučiu, naudokite iteritems ().
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} k, v vartotojams.iteritems (): spausdinti k, '=>', v. # atspausdina. pavardė => Smithas. amžius => 27. vardas => Jonas.

Iteravimas per vertybes

  • Metodas itervalues ​​() gali būti naudojamas pakartoti visas žodyno reikšmes. Nors šis metodas atrodo panašus į kilpą naudojant reikšmės (), jis yra efektyvesnis, nes neišverčia visų verčių vienu metu.
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} vertė vartotojams.itervalues ​​(): spausdinimo vertė. # atspausdina. Kalvis. 27. Jonas.

Išgaunami masyvai

Šie metodai apibūdina įvairios Python žodyno informacijos išgavimą masyvo pavidalu. Gautą masyvą galima perbraukti naudojant įprastas python konstrukcijas. Tačiau atminkite, kad grąžinamas masyvas gali būti didelis, atsižvelgiant į žodyno dydį. Taigi gali būti daugiau brangus (pagal atmintį) apdoroti šiuos masyvus, nei naudojant aukščiau pateiktus iteratoriaus metodus.

Vienas iš atvejų, kai priimtina dirbti su šiais masyvais, yra tada, kai jums reikia ištrinti elementus iš žodyno, nes susiduriate su nepageidaujamais elementais. Darbas su iteratoriumi modifikuojant žodyną gali sukelti „RuntimeError“.

  • Metodas elementai () grąžina masyvą raktų vertės gairių. Galite pakartoti šias pagrindines reikšmių poras, kaip parodyta:
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} k, v vartotojams.items (): spausdinti k, '=>', v. # atspausdina. pavardė => Smithas. amžius => 27. vardas => Jonas.
  • Naudodami metodą, surinkite visus žodyno klavišus raktai().
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} spausdinti users.keys () # atspausdina. ['pavardė', 'amžius', 'vardas']

    Norėdami grąžinti klavišus, naudokite grąžintą masyvą.

    „k“ vartotojams.keys (): spausdinti k, „=>“, vartotojams [k] # atspausdina. pavardė => Smithas. amžius => 27. vardas => Jonas.
  • Panašiu būdu naudokite metodą reikšmės () gauti visas žodyno reikšmes.
    vertė vartotojams.values ​​(): spausdinimo vertė. # atspausdina. Kalvis. 27. Jonas. 

Kaip jūs naudojate Python žodynus?

Šiame straipsnyje bandėme apžvelgti dažniausiai pasitaikančius python žodynų naudojimo atvejus. Nepamirškite patikrinti visų mūsų kiti „Python“ straipsniai 10 pagrindinių Python pavyzdžių, kurie padės greitai mokytisŠis pagrindinių python pavyzdžių straipsnis skirtas tiems, kurie jau turi tam tikros programavimo patirties ir tiesiog nori kuo greičiau pereiti prie Python. Skaityti daugiau net daugiau Python patarimų 5 kursai, kurie nuves jus nuo Python Beginner iki ProŠie penki kursai išmokys jus visko apie programavimą Python'e - tai viena populiariausių kalbų šiuo metu. Skaityti daugiau . Jei turite kitų naudojimo atvejų, kurie, jūsų manymu, turėtų būti įtraukti, praneškite mums komentaruose žemiau!

Kreditai vaizdams: viper345 / Shutterstock