logo

Kā pārbaudīt, vai Python vārdnīcā ir atslēga

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

    atslēgas nosaukums-Vērtības atslēgas nosaukums, kuru vēlaties atgriezt.vērtība-Ja atslēga neeksistē, šī vērtība tiek nodrošināta kā opcija.

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.