logo

Com comprovar si una clau existeix en un diccionari de Python

A Python, un diccionari és un conjunt no ordenat de valors de dades que es poden utilitzar per gestionar i emmagatzemar valors com un mapa. A diferència d'altres tipus de dades, que només poden portar un valor específic com a element, el diccionari pot contenir un parell clau-valor. El diccionari inclou un parell clau-valor per fer-lo més eficient. El polimorfisme no està permès a les claus del diccionari. Un diccionari es construeix en Python tancant una successió d'entrades entre claus i separant-les amb una coma. El diccionari emmagatzema parelles de valors, un dels quals és la clau i l'altre és l'element parell clau:valor.

En un diccionari, els valors poden ser de qualsevol estructura de dades i fins i tot es poden replicar, però no es poden copiar les claus que han de ser immutables.

Comprovació d'una clau al diccionari

A Python, un diccionari és una estructura de dades útil que emmagatzema parells clau-valor. Obtenir el valor d'una clau específica d'un diccionari és sovint necessari en programació; tanmateix, l'existència d'una clau determinada al diccionari no està realment garantida sempre. Com a resultat, és una bona idea comprovar si una clau pertany al diccionari abans de recuperar-ne el valor.

Utilitzant has_key()

Si es troba una clau determinada al diccionari, el té_clau() el mètode retorna true; en cas contrari, torna fals.

Python 3 ha fet això obsolet. Aquest mètode es pot utilitzar si estem executant en una versió anterior a Python 3.

L'ordre següent es pot utilitzar per confirmar la versió de Python a cmd.

Codi:

 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') 

Sortida:

Com comprovar els números bloquejats a Android
 --------------------------------------------------------------------------- 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' 

Com que aquest codi es va executar a Python 3, està mostrant un error.

declaració if-in

Aquest mètode verifica si una clau en particular existeix dins del diccionari mitjançant la instrucció if-in. Comptem amb l'operador de membres en , d'aquesta manera. Aquest operador s'utilitza per determinar si un valor pertany a un altre. Et dóna un resultat booleà.

Codi:

 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') 

Sortida:

 Key exists in Animals 

Ara, mirant el cas negatiu.

Codi:

 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') 

Sortida:

 There is no key '4' in Animals 

Així mateix, el no dins es podria utilitzar per veure si una clau en un diccionari no existeix. Tanmateix, tingueu en compte que el en L'operació distingeix entre majúscules i minúscules, així que assegureu-vos que totes les tecles tinguin la mateixa majúscula o utilitzeu superior () o més baix() mètodes.

Codi:

 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') 

Sortida:

 Key exists in Animals 

Utilitzant el mètode get().

El mètode get() proporciona el valor de la clau relacionada en un diccionari. Si la clau no hi és, retorna Cap o un valor predeterminat (si se'n va proporcionar un). Podem passar una clau a aquest mètode i veure si existeix al diccionari de Python donat.

La sintaxi de la funció get() és:

 dict_name.get(keyname, value) 

Aquí, dict name és el títol del diccionari que utilitzaràs.

Paràmetres

    Nom clau-El nom clau del valor que voleu retornar.valor-Si la clau no existeix, aquest valor es proporciona com a opció.

Codi:

 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') 

Sortida:

 Key exists in Animals 

Ara prenent un cas negatiu,

Codi:

 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') 

Sortida:

 There is no key '5' in Animals 

Quan utilitzeu aquest mètode, tingueu en compte que si tenim una clau amb aquest valor Cap, no serà precisa. Si no en tenim, amb aquesta tècnica n'hi haurà prou. Si volem utilitzar els valors retornats per aquest mètode, els podem desar en una variable.

Ús de tecles()

El claus() La funció i l'operador 'in' es poden utilitzar per veure si existeix una clau en un diccionari. El claus() El mètode retorna una llista de claus al diccionari i la instrucció 'if, in' comprova si la clau proporcionada està a la llista. Retorna True si la clau existeix; en cas contrari, retorna False.

Entrada

 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') 

Sortida:

 Key exists in Animals 

Comproveu si el diccionari té diverses claus.

En una declaració, també podem comprovar si el diccionari conté diverses claus. Podem utilitzar el tots () funció en combinació amb la comprensió de la llista per veure si el diccionari conté moltes o totes les claus.

Codi:

 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') 

Sortida:

 Not all the keys are there in Animals 

Examineu la llista de diccionaris per veure si la clau existeix

Una llista de diccionaris és una col·lecció de diccionaris que es poden trobar en una llista.

  • llista_de_diccionari: una llista amb tres objectes de diccionari.
  • 'b' a les tecles per a les claus de la llista de diccionaris - produint la llista de claus dins de la llista de diccionaris mitjançant la comprensió de la llista. A continuació, a la llista, comproveu si n'hi ha algun disponible. Tornarà una llista amb True per a les claus que són 'b' i False per a les claus que no en són una.
  • any() - Verifica la llista Vertader/Fals proporcionada per la comprensió de la llista. La clau 'b' està present a la llista del diccionari si inclou almenys un True. El bloc 'si' s'executa després que retorni True. En cas contrari, s'executa el bloc 'else'.

Codi:

 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') 

Sortida:

 Key exists in list_of_dictionaries 

Comproveu si la clau es troba al diccionari JSON

JSON significa 'Javascript Object Notation' i és un parell clau-valor que desa valors.

El json.loads() El mètode es pot utilitzar per construir un diccionari a partir d'un text JSON.

java cast int a cadena

Aleshores, com es veu a continuació, podem utilitzar el 'si i en' per veure si la clau està present al diccionari JSON.

Entrada

 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') 

Sortida:

 Key is present in the JASON dictionary 

Conclusió

Per resumir, hem après com comprovar si la clau està al diccionari de diverses maneres. També hem après a aplicar aquests mètodes a diverses instàncies per veure si la clau està al diccionari. També hem vist com cada opció pren un temps diferent.