Reklāma

Python vārdnīca ir datu struktūra, kas līdzīga asociatīvajam masīvam, kas atrodams citās programmēšanas valodās. Masīvs vai saraksts indeksē elementus pēc pozīcijas. Turpretī vārdnīca indeksē elementus pēc taustiņi kas var būt stīgas. Domājiet par vārdnīcu kā nesakārtotu kopu atslēgas vērtība pāri.

python vārdnīcas atslēgas vērtību pāri

Šajā rakstā mēs jūs iepazīstinām ar darbu ar python vārdnīcu.

Vārdnīcas izveidošana

Python vārdnīcas izveidošanai ir vairāki veidi. Vienkāršākais izmanto lenču inicializāciju ar sintakse atgādina JSON Kā iegūt Python un JavaScript saziņai, izmantojot JSONŠodien es jums parādīšu, kā izmantot JSON, lai nosūtītu datus no JavaScript uz Python. Es apskatīšu, kā iestatīt tīmekļa serveri, kā arī visu nepieciešamo kodu. Lasīt vairāk .

lietotāji = {'pirmais vārds': 'Jānis', 'uzvārds': 'Smits', 'vecums': 27}

Ciparus var izmantot arī kā taustiņus. Tomēr esiet piesardzīgs, izmantojot taustiņus ar peldošo komatu, jo dators tos saglabā kā tuvinājumus Viss, kas jums jāzina par RAM un atmiņas pārvaldībuRAM ir jūsu datora īstermiņa atmiņa. Tādējādi atmiņas pārvaldībai ir būtiska ietekme uz sistēmas veiktspēju. Šeit mēs izskaidrojam, kā darbojas RAM, un vai jūs varat kaut ko darīt, lai palielinātu tā efektivitāti.

Lasīt vairāk .

rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} drukāt rain_percent. drukāt rain_percent [1980] # izdrukas. {1980: '17%', 1981: '15%', 1982: '10%'} 17%

Norāda atslēgas vērtības pārus

Varat arī izveidot un inicializēt vārdnīcu, izmantojot nosaukuma vērtību pārus kā atslēgvārda argumentus diktēt () konstruktors.

iedzīvotāju skaits = diktēts (Kalifornija = 37253956, Kolorādo = 5029196, Konektikuta = 3574097, Delavēra = 897934) drukas populācija. # izdrukas. {'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196}

Galveno vērtību dubultu masīvs

Vēl viens vārdnīcas izveidošanas veids ir izmantot atslēgu vērtības kopiju masīvu. Šeit ir tāds pats piemērs kā iepriekš.

pāri = [('California', 37253956), ('Colorado', 5029196), ('Connecticut', 3574097), ('Delaware', 897934)] populācija = diktēts (pāri) drukas populācija. # izdrukas. {'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196}

Dept izpratne

Dika izpratne nodrošina foršu sintakse sinhronizācijas sākšanai, ja vērtības var aprēķināt, pamatojoties uz taustiņiem. Tālāk tiek inicializēts skaitļu un kvadrāta vērtību kopums skaitļu diapazonam.

drukāt {x: x ** 2 x xrange (10, 20)} # izdrukas. {10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17: 289, 18: 324, 19: 361}

Kā tas darbojas? Pēdējā daļa (x x xrange (10, 20)) atgriež skaitļu diapazonu norādītajā diapazonā. Diktētā izpratnes daļa ({x: x ** 2 ..}) cilpas pa šo diapazonu un inicializē vārdnīcu.

Darbs ar Python vārdnīcu

Ko jūs varat darīt ar vārdnīcām, kad esat tās izveidojis? Nu, jūs varat piekļūt elementiem, atjaunināt vērtības, izdzēst elementus utt.

Piekļuve Python vārdnīcas elementiem

Piekļūstiet attēla elementam, izmantojot atslēgu iekavās, tāpat kā jūs to darītu masīvs vai saraksts Kā masīvi un saraksti darbojas pitonāMasīvi un saraksti ir dažas no visnoderīgākajām datu struktūrām programmēšanā - lai gan tikai nedaudzi cilvēki tos izmanto pilnībā. Lasīt vairāk .

drukas populācija ['Delaware'] # izdrukas. 897934.

Ja atslēga ir cipars, pēdiņas nav vajadzīgas. Pēc tam izteiciens izskatās kā saraksts vai masīva indeksācija.

drukāt rain_percent [1980] # izdrukas. 17%

Taustiņa tipam, piekļūstot tam, jāatbilst tam, kas tiek saglabāts Python vārdnīcā. Šis iemesls rada kļūdu, jo saglabātie taustiņi ir cipari, bet piekļuves atslēga ir virkne.

x = '1980' drukāt rain_percent [x] # rezultāti 1 x = '1980' > 2 drukāšanas lietus_centrs [x] KeyError: “1980”

Piekļuve neesošai atslēgai ir kļūda.

rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} drukāt rain_percent [1983] # izdrukā 1 rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} > 2 print rain_percent [1983] KeyError: 1983.

Lai piekļūtu atslēgai un nodrošinātu noklusējuma vērtību, ja kartēšana neeksistē, izmantojiet gūt() metode ar noklusējuma vērtību kā otro argumentu.

drukāt rain_percent.get (1985. gads, “0%”) # izdrukas. 0%

Pārbaude uz esamību

Ko darīt, ja vēlaties pārbaudīt atslēgas esamību, faktiski nemēģinot tai piekļūt (un, iespējams, saskaroties ar taustiņu KeyError kā iepriekš)? Jūs varat izmantot iekšā atslēgvārds formā ievadiet dct kas atgriež Būla vērtību.

1980. gada drukāšana lietus laikā. drukāt “1980” lietus laikā. # izdrukas. Patiesībā. Viltus. 

Apgrieziet nosacījumu (t.i., pārliecinieties, ka atslēga nav Python vārdnīcā), izmantojot formu atslēga nav dct. Tas ir līdzvērtīgs standarta python noliegumam neievadiet dct.

1980. gada izdruka nevis lietus laikā. drukāt 1985. gadā, nevis lietū. # izdrukas. Viltus. Patiesībā. 

Elementu modificēšana

Mainiet vērtību, piešķirot nepieciešamo taustiņu.

lietotāji = {'pirmais vārds': 'Jānis', 'uzvārds': 'Smits', 'vecums': 27} lietotāji ['vecums'] = 29. drukas lietotāji. # izdrukas. {'uzvārds': 'Smith', 'vecums': 29, 'firstname': 'John'}

Izmantojiet to pašu sintakse, lai pievienotu jaunu kartēšanu Python vārdnīcai.

lietotāji ['dobs'] = '15. septembris-1971 ' drukas lietotāji. # izdrukas. {'dobs': '15 -sep-1971 ',' uzvārds ':' Smith ',' vecums ': 29,' firstname ':' John '}

Atjauniniet vairākus vārdnīcas elementus vienā kadrā, izmantojot Atjaunināt() metode.

lietotāji = {'pirmais vārds': 'Jānis', 'uzvārds': 'Smits', 'vecums': 27} users.update ({'vecums': 29, 'dobs': '15 -sep-1971 '}) drukas lietotāji. # izdrukas. {'dobs': '15 -sep-1971 ',' uzvārds ':' Smith ',' vecums ': 29,' firstname ':' John '}

Iestatiet taustiņa noklusējuma vērtību, izmantojot setdefault (). Šī metode nosaka atslēgas vērtību, ja kartēšana neeksistē. Tas atgriež pašreizējo vērtību.

# nemaina pašreizējo vērtību. drukāt users.setdefault ('firstname', 'Jane') # izdrukas. Jānis # nosaka vērtību. drukāt users.setdefault ('pilsēta', 'NY') # izdrukas. NY # galīgā vērtība. drukas lietotāji. # izdrukas. {'uzvārds': 'Smith', 'vecums': 27, 'firstname': 'John', 'city': 'NY'}

Elementu dzēšana

Dzēsiet kartējumus vārdnīcā, izmantojot del operators. Šis operators neko neatdod.

Jūs sastapsit a KeyError ja atslēgas vārdnīcā nav.

lietotāji = {'pirmais vārds': 'Jānis', 'uzvārds': 'Smits', 'vecums': 27} del lietotāji ['vecums'] drukas lietotāji. # izdrukas. {'uzvārds': 'Smith', 'firstname': 'John'}

Izmantojiet pop () Tā vietā, kad vēlaties atgūt izdzēsto vērtību.

lietotāji = {'pirmais vārds': 'Jānis', 'uzvārds': 'Smits', 'vecums': 27} drukas lietotāji.pop ('vecums') drukas lietotāji. # izdrukas. 27. {'uzvārds': 'Smith', 'firstname': 'John'}

Ko darīt, ja vēlaties izdzēst atslēgu, ja tāda pastāv, neradot kļūdu, ja tās nav? Tu vari izmantot pop () un norādiet Nav otrais arguments ir šāds:

lietotāji = {'pirmais vārds': 'Jānis', 'uzvārds': 'Smits', 'vecums': 27} users.pop (“foo”, nav) drukas lietotāji. # izdrukas. {'uzvārds': 'Smith', 'vecums': 27, 'firstname': 'John'}

Un šeit ir viens ieliktnis, lai no vārdnīcas izdzēstu atslēgu kopu, neradot kļūdu neesošos taustiņos.

lietotāji = {'pirmais vārds': 'Jānis', 'uzvārds': 'Smits', 'vecums': 27, 'dobs': '15 -sep-1971 '} karte (lambda x: lietotāji.pop (x, nav), ['vecums', 'foo', 'dobs')) drukas lietotāji.

Vai vēlaties izdzēst visus taustiņus no vārdnīcas? Izmantojiet notīrīt () metode.

lietotāji = {'pirmais vārds': 'Jānis', 'uzvārds': 'Smits', 'vecums': 27} users.clear () drukas lietotāji. # izdrukas. {}

Looping ar Python vārdnīcām

Python nodrošina daudzus cilpu veidošanas metodes Kā cilpas darbojas datorprogrammēšanāCilpas ir viens no pirmajiem vadības veidiem, ko iemācīsities programmēšanā. Jūs, iespējams, zināt par laiku un par cilpām, bet ko dara īslaicīga cilpa? Lasīt vairāk virs vārdnīcas ierakstiem. Izvēlieties vienu, lai atbilstu jūsu vajadzībām.

Looping pār taustiņiem

  • Vienkāršākā atslēgu (un, iespējams, vērtību) secīgas apstrādes metode izmanto formas cilpu:
    lietotāji = {'pirmais vārds': 'Jānis', 'uzvārds': 'Smits', 'vecums': 27} k lietotājiem: drukāt k, '=>', lietotājiem [k] # izdrukas. uzvārds => Smits. vecums => 27. vārds => Jānis.
  • Izmantojot metodi iterkeys () darbojas tieši tāpat kā iepriekš. Izvēlieties, kuru formu vēlaties izmantot.
    lietotāji = {'pirmais vārds': 'Jānis', 'uzvārds': 'Smits', 'vecums': 27} k lietotājiem user.iterkeys (): drukāt k, '=>', lietotājiem [k] # izdrukas. uzvārds => Smits. vecums => 27. vārds => Jānis.
  • Trešā metode atslēgu iegūšanai un apstrādei cilpā ietver iebūvētās funkcijas izmantošanu iter ().
    lietotāji = {'pirmais vārds': 'Jānis', 'uzvārds': 'Smits', 'vecums': 27} k k iterā (lietotāji): drukāt k, '=>', lietotāji [k] # izdrukas. uzvārds => Smits. vecums => 27. vārds => Jānis.
  • Ja jums nepieciešams apstrādājamās atslēgas indekss, izmantojiet uzskaitīt () iebūvētā funkcija, kā parādīts.
    lietotāji = {'pirmais vārds': 'Jānis', 'uzvārds': 'Smits', 'vecums': 27} indeksam, atslēga uzskaitījumā (lietotājiem): drukāšanas indekss, atslēga, '=>', lietotāji [k] # izdrukas. 0 uzvārds => Jānis. 1 vecums => Jānis. 2 vārds => Jānis.

Looping over Key-Value pāri

  • Ja vēlaties iegūt katru atslēgas vērtību pāri ar vienu zvanu, izmantojiet iteritems ().
    lietotāji = {'pirmais vārds': 'Jānis', 'uzvārds': 'Smits', 'vecums': 27} k, v lietotājiem.iteritems (): drukāt k, '=>', v. # izdrukas. uzvārds => Smits. vecums => 27. vārds => Jānis.

Pārvērtējot vērtības

  • Metode itervalues ​​() var izmantot, lai atkārtotu visas vārdnīcas vērtības. Lai gan šī metode izskatās līdzīga cilpai, izmantojot vērtības (), tas ir efektīvāks, jo tas neiegūst visas vērtības vienlaikus.
    lietotāji = {'pirmais vārds': 'Jānis', 'uzvārds': 'Smits', 'vecums': 27} vērtībai user.itervalues ​​(): drukāšanas vērtība. # izdrukas. Smits. 27. Džons.

Masīvu ieguve

Šīs metodes apraksta dažādas Python vārdnīcas informācijas iegūšanu masīva formā. Iegūto masīvu var pārlocīt, izmantojot parastās python konstrukcijas. Tomēr ņemiet vērā, ka atgrieztais masīvs var būt liels atkarībā no vārdnīcas lieluma. Tātad tas varētu būt vairāk dārgi (gudri atmiņā) lai apstrādātu šos masīvus, nevis izmantojot iepriekšminētās iteratoru metodes.

Viens no gadījumiem, kad ir pieļaujams strādāt ar šiem masīviem, ir tas, ka, izdzēšot nevēlamus elementus, no vārdnīcas jāizdzēš vienumi. Darbs ar iteratoru, mainot vārdnīcu, var izraisīt RuntimeError.

  • Metode preces () atgriež galveno vērtību kopiju masīvu. Varat atkārtot šos galveno vērtību pārus, kā parādīts:
    lietotāji = {'pirmais vārds': 'Jānis', 'uzvārds': 'Smits', 'vecums': 27} k, v lietotājiem.items (): drukāt k, '=>', v. # izdrukas. uzvārds => Smits. vecums => 27. vārds => Jānis.
  • Izmantojot metodi, atrodiet visus vārdnīcas taustiņus taustiņi ().
    lietotāji = {'pirmais vārds': 'Jānis', 'uzvārds': 'Smits', 'vecums': 27} drukāt users.keys () # izdrukas. ['uzvārds', 'vecums', 'vārds']

    Izmantojiet atgriezto masīvu, lai pārvilinātu atslēgas.

    k lietotājiem user.keys (): drukāt k, '=>', lietotājiem [k] # izdrukas. uzvārds => Smits. vecums => 27. vārds => Jānis.
  • Līdzīgā veidā izmantojiet metodi vērtības () lai ielādētu visas vārdnīcas vērtības.
    vērtībai user.values ​​(): drukāšanas vērtība. # izdrukas. Smits. 27. Džons. 

Kā jūs izmantojat Python vārdnīcas?

Šajā rakstā mēs esam mēģinājuši aptvert biežākos python vārdnīcu lietošanas gadījumus. Pārbaudiet visu mūsu citi Python raksti 10 pamata Python piemēri, kas palīdzēs ātri mācītiesŠis python pamata piemēru raksts ir paredzēts tiem, kuriem jau ir zināma programmēšanas pieredze un kuri vienkārši vēlas pēc iespējas ātrāk pāriet uz Python. Lasīt vairāk uz pat vairāk Python padomu 5 kursi, kas aizvedīs jūs no Python Beginner līdz ProŠie pieci kursi jums iemācīs visu par programmēšanu Python - vienā no karstākajām valodām, kas šobrīd ir pieejama. Lasīt vairāk . Ja jums ir citi lietošanas gadījumi, kas, jūsuprāt, būtu jāiekļauj, lūdzu, paziņojiet mums komentāros zemāk!

Attēlu kredīti: viper345 / Shutterstock