Programmā Python vārdnīca ir nesakārtota datu vērtību kopa, ko var izmantot, lai pārvaldītu un saglabātu vērtības, piemēram, karti. Atšķirībā no citiem datu tipiem, kuriem kā vienums var būt tikai noteikta vērtība, vārdnīcā var būt atslēgas un vērtības pāris. Lai padarītu to efektīvāku, vārdnīcā ir iekļauts atslēgas-vērtības pāris. Polimorfisms vārdnīcas taustiņos nav atļauts. Vārdnīca tiek veidota Python, iekļaujot virkni ierakstu cirtainos iekavās un atdalot tos ar komatu. Vārdnīca saglabā vērtību pārus, no kuriem viens ir atslēga, bet otrs ir atslēgas:vērtības pāra elements.
Vārdnīcā vērtībām var būt jebkura datu struktūra, un tās var pat replicēt, taču nevar kopēt atslēgas, kurām ir jābūt nemainīgām.
Atslēgas pārbaude vārdnīcā
Python vārdnīca patiešām ir noderīga datu struktūra, kas glabā atslēgu un vērtību pārus. Programmēšanā bieži ir nepieciešams iegūt noteiktas atslēgas vērtību no vārdnīcas; tomēr ne vienmēr ir garantēta konkrētas atslēgas esamība vārdnīcā. Tāpēc pirms tās vērtības izgūšanas ieteicams vēlreiz pārbaudīt, vai atslēga pieder vārdnīcai.
Izmantojot has_key()
Ja vārdnīcā tiek atrasta dotā atslēga, has_key() metode atgriež true; pretējā gadījumā tas atgriež nepatiesu.
Python 3 ir padarījis to par novecojušu. Šo metodi var izmantot, ja mēs strādājam ar vecāku versiju nekā Python 3.
Tālāk norādīto komandu var izmantot, lai apstiprinātu Python versiju cmd.
Kods:
import sys print(sys.version) Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} key_to_check_for = '2' if Animals.has_key(key_to_check_for): print('Key exists in Animals') else: print(f'There is no key {key_to_check_for} in Animals')
Izvade:
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) Input In [37], in () 1 Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} 2 key_to_check_for = '2' ----> 3 if Animals.has_key(key_to_check_for): 4 print('Key exists in Animals') 5 else: AttributeError: 'dict' object has no attribute 'has_key'
Tā kā šis kods tika izpildīts Python 3, tas parāda kļūdu.
ja-in Paziņojums
Šī metode pārbauda, vai vārdnīcā pastāv noteikta atslēga, izmantojot priekšrakstu if-in. Mēs nodarbinām dalības operatoru iekšā , šādā veidā. Šo operatoru izmanto, lai noteiktu, vai viena vērtība pieder citai. Tas dod Būla rezultātu.
Kods:
Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} Key = '2' if '2' in Animals: print('Key exists in Animals') else: print(f'There is no key {key} in Animals')
Izvade:
Key exists in Animals
Tagad, aplūkojot negatīvo gadījumu.
Kods:
saraksts kā masīvs
Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} if '4' in Animals: print('Key exists in Animals') else: print(f'There is no key {key} in Animals')
Izvade:
There is no key '4' in Animals
Tāpat, nav iekšā operatoru var izmantot, lai noskaidrotu, vai vārdnīcā nav atslēgas. Tomēr paturiet prātā, ka iekšā darbība ir reģistrjutīga, tāpēc pārliecinieties, vai visi taustiņi ir vienādi, vai izmantojiet augstāks () vai zemāks () metodes.
Kods:
Animals = {'one': 'Cat', 'two':'Rat', 'three':'Bat'} setting_case = set(key.upper() for key in Animals) key_to_check_for = 'two' if key_to_check_for.upper() in setting_case: print('Key exists in Animals') else: print(f'There is no key {key_to_check_for} in Animals')
Izvade:
Key exists in Animals
Izmantojot metodi get()
Get() metode nodrošina saistītās atslēgas vērtību vārdnīcā. Ja atslēgas nav, tā atgriež vai nu None, vai noklusējuma vērtību (ja tāda tika piegādāta). Mēs varam nodot atslēgu šai metodei un redzēt, vai tā pastāv dotajā Python vārdnīcā.
Funkcijas get() sintakse ir:
dict_name.get(keyname, value)
Šeit dict name ir vārdnīcas nosaukums, kuru izmantosit.
Parametri
Kods:
Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} key_to_check_for = '2' if Animals.get(key_to_check_for) is not None: print('Key exists in Animals') else: print(f'There is no key {key_to_check_for} in Animals')
Izvade:
Linux komandas izveidot mapi
Key exists in Animals
Tagad ņemot vērā negatīvo gadījumu,
Kods:
Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} key_to_check_for = '5' if Animals.get(key_to_check_for) is not None: print('Key exists in Animals') else: print(f'There is no key {key_to_check_for} in Animals')
Izvade:
There is no key '5' in Animals
Izmantojot šo metodi, lūdzu, ņemiet vērā: ja mums ir atslēga ar šo vērtību Nav, tā nebūs precīza. Ja mums tāda nav, pietiks ar šo tehniku. Ja mēs vēlamies izmantot šīs metodes atgrieztās vērtības, mēs varam tās saglabāt mainīgajā.
Izmantojot taustiņus ()
The atslēgas () funkciju un operatoru 'in' var izmantot, lai redzētu, vai vārdnīcā ir atslēga. The atslēgas () metode atgriež vārdnīcā esošo atslēgu sarakstu, un priekšraksts “ja, in” pārbauda, vai norādītā atslēga ir sarakstā. Tas atgriež True, ja atslēga pastāv; pretējā gadījumā tas atgriež False.
Ievade
Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} key='2' if key in Animals.keys(): print('Key exists in Animals') else: print(f'There is no key {key} in Animals')
Izvade:
Key exists in Animals
Pārbaudiet, vai vārdnīcā ir vairāki taustiņi.
Vienā paziņojumā mēs varam arī pārbaudīt, vai vārdnīcā ir vairākas atslēgas. Mēs varam izmantot viss () funkciju kombinācijā ar saraksta izpratni, lai redzētu, vai vārdnīcā ir daudz vai visi taustiņi.
Kods:
Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} key='2' if all(key in Animals for key in ('1','5')): print('All keys exists in Animals') else: print('Not all the keys are there in Animals')
Izvade:
Not all the keys are there in Animals
Pārbaudiet vārdnīcu sarakstu, lai noskaidrotu, vai atslēga pastāv
Vārdnīcu saraksts ir vārdnīcu kolekcija, ko var atrast sarakstā.
- list_of_dictionary - saraksts ar trīs vārdnīcas objektiem.
- 'b' vārdnīcu saraksta taustiņu taustiņos — vārdnīcu saraksta atslēgu saraksta izveidošana, izmantojot saraksta izpratni. Pēc tam sarakstā pārbaudiet, vai tāda ir pieejama. Tas atgriezīs sarakstu ar True taustiņiem, kas ir “b”, un False taustiņiem, kas nav viens.
- any() — pārbauda patieso/nepatieso sarakstu, ko nodrošina saraksta izpratne. Atslēga “b” ir atrodama vārdnīcu sarakstā, ja tajā ir ietverts vismaz viens True. Bloks “ja” tiek izpildīts pēc tam, kad tas atgriež True. Pretējā gadījumā tiek izpildīts bloks 'cits'.
Kods:
list_of_dictionaries = [{'a': 'A'}, {'b': 'B'}, {'c': 'C'}] if any('b' in keys for keys in list_of_dictionary): print('key exists in list_of_dictionaries') else: print('key does not exists in list_of_dictionaries')
Izvade:
Key exists in list_of_dictionaries
Pārbaudiet, vai atslēga ir JSON vārdnīcā
JSON apzīmē “Javascript Object Notation”, un tas ir atslēgas un vērtības pāris, kas saglabā vērtības.
The json.loads() metodi var izmantot, lai izveidotu vārdnīcu no JSON teksta.
Pēc tam, kā redzams tālāk, mēs varam izmantot “ja un iekšā”, lai redzētu, vai atslēga ir JSON vārdnīcā.
Ievade
import json json_str = '''{'a': 'A', 'b': 'B', 'c': 'C'}''' json_dictionary = json.loads(json_str) if 'c' in json_dictionary: print('Key is present in the JSON dictionary') else: print('Key is not present in JSON dictionary')
Izvade:
Key is present in the JASON dictionary
Secinājums
Atgādinot, mēs esam iemācījušies pārbaudīt, vai vārdnīcā ir atslēga, izmantojot vairākus veidus. Mēs esam arī iemācījušies, kā šīs metodes izmantot dažādos gadījumos, lai redzētu, vai vārdnīcā ir atslēga. Mēs arī esam redzējuši, kā katrai opcijai ir nepieciešams atšķirīgs laiks.