In Python is een woordenboek een ongeordende set gegevenswaarden die kan worden gebruikt om waarden als een kaart te beheren en op te slaan. In tegenstelling tot andere gegevenstypen, die alleen een specifieke waarde als item kunnen bevatten, kan Dictionary een sleutel-waardepaar bevatten. Het woordenboek bevat een sleutel-waardepaar om het efficiënter te maken. Polymorfisme is niet toegestaan in woordenboeksleutels. Een woordenboek wordt in Python gebouwd door een reeks vermeldingen tussen accolades te plaatsen en deze te scheiden met een komma. De Dictionary slaat koppels waarden op, waarvan er één de Sleutel is en de andere het Sleutel:waarde-paarelement is.
In een woordenboek kunnen waarden elke gegevensstructuur hebben en zelfs worden gerepliceerd, maar sleutels kunnen niet worden gekopieerd omdat ze onveranderlijk moeten zijn.
Een sleutel in het woordenboek controleren
In Python is een woordenboek inderdaad een nuttige gegevensstructuur waarin sleutel-waardeparen worden opgeslagen. Bij het programmeren is het vaak nodig om de waarde van een specifieke sleutel uit een woordenboek te halen; het bestaan van een bepaalde sleutel in het woordenboek is echter niet altijd gegarandeerd. Daarom is het een goed idee om nogmaals te controleren of een sleutel tot het woordenboek behoort voordat u de waarde ervan ophaalt.
has_key() gebruiken
Als een bepaalde sleutel in het woordenboek wordt gevonden, wordt de heeft_sleutel() methode retourneert waar; anders retourneert het false.
Python 3 heeft dit verouderd gemaakt. Deze methode kan worden gebruikt als we op een oudere versie dan Python 3 draaien.
Het onderstaande commando kan worden gebruikt om de Python-versie in cmd te bevestigen.
Code:
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')
Uitgang:
--------------------------------------------------------------------------- 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'
Omdat deze code is uitgevoerd op Python 3, wordt er een fout weergegeven.
Linux-wijzigingsbestand
if-in-verklaring
Deze methode controleert of een bepaalde sleutel in het woordenboek bestaat met behulp van de if-in-instructie. Wij maken gebruik van de lidmaatschapsoperator in , op deze manier. Deze operator wordt gebruikt om te bepalen of de ene waarde bij een andere hoort. Het geeft je een booleaans resultaat.
Code:
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')
Uitgang:
Key exists in Animals
Kijk nu naar het negatieve geval.
Code:
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')
Uitgang:
There is no key '4' in Animals
Zo ook de niet in operator kan worden gebruikt om te zien of een sleutel in een woordenboek niet bestaat. Houd er echter rekening mee dat de in De bewerking is hoofdlettergevoelig, dus zorg ervoor dat alle toetsen hetzelfde hoofdlettergebruik hebben, of gebruik de hoger() of lager() methoden.
Code:
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')
Uitgang:
array.sort in Java
Key exists in Animals
Met behulp van de get()-methode
De get()-methode levert de waarde van de gerelateerde sleutel in een woordenboek. Als de sleutel er niet is, retourneert deze Geen of een standaardwaarde (als deze is opgegeven). We kunnen een sleutel aan deze methode doorgeven en kijken of deze bestaat in het gegeven Python-woordenboek.
De syntaxis van de functie get() is:
dict_name.get(keyname, value)
Hier is de dictaatnaam de titel van het woordenboek dat u gaat gebruiken.
Parameters
Code:
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')
Uitgang:
Key exists in Animals
Neem nu een negatief geval,
Code:
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')
Uitgang:
There is no key '5' in Animals
Houd er bij het gebruik van deze methode rekening mee dat als we een sleutel hebben met de waarde Geen, deze niet nauwkeurig zal zijn. Als we er geen hebben, is deze techniek voldoende. Als we de door deze methode geretourneerde waarden willen gebruiken, kunnen we ze in een variabele opslaan.
hippe computertaal
Sleutels gebruiken()
De sleutels() functie en de 'in'-operator kunnen worden gebruikt om te zien of een sleutel in een woordenboek bestaat. De sleutels() methode retourneert een lijst met sleutels in het woordenboek, en de 'if, in'-instructie controleert of de opgegeven sleutel in de lijst voorkomt. Het retourneert True als de sleutel bestaat; anders retourneert het False.
Invoer
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')
Uitgang:
Key exists in Animals
Controleer of het woordenboek meerdere sleutels heeft.
In één verklaring kunnen we ook controleren of het woordenboek meerdere sleutels bevat. Wij kunnen gebruik maken van de alle() functie in combinatie met lijstbegrip om te zien of het woordenboek veel of alle sleutels bevat.
Code:
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')
Uitgang:
Not all the keys are there in Animals
Bekijk de lijst met woordenboeken om te zien of de sleutel bestaat
Een lijst met woordenboeken is een verzameling woordenboeken die in een lijst te vinden zijn.
- list_of_dictionary - een lijst met drie woordenboekobjecten erin.
- 'b' in sleutels voor de sleutels in de lijst met woordenboeken - het produceren van de lijst met sleutels binnen de lijst met woordenboeken met behulp van lijstbegrip. Kijk vervolgens op de lijst of er een beschikbaar is. Er wordt een lijst geretourneerd met True voor sleutels die 'b' zijn en False voor sleutels die niet één zijn.
- any() - Verifieert de True/False-lijst die wordt geleverd door lijstbegrip. De sleutel 'b' is aanwezig in de woordenboeklijst als deze ten minste één Waar bevat. Het 'if'-blok wordt vervolgens uitgevoerd nadat het True retourneert. Anders wordt het 'else'-blok uitgevoerd.
Code:
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')
Uitgang:
pete davidson-nationaliteit
Key exists in list_of_dictionaries
Controleer of de sleutel in het JSON-woordenboek staat
JSON staat voor 'Javascript Object Notation' en is een sleutel-waardepaar dat waarden opslaat.
De json.loads() methode kan worden gebruikt om een woordenboek op te bouwen uit een JSON-tekst.
Vervolgens kunnen we, zoals hieronder te zien is, de 'if en in' gebruiken om te zien of de sleutel aanwezig is in het JSON-woordenboek.
Invoer
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')
Uitgang:
Key is present in the JASON dictionary
Conclusie
Om samen te vatten: we hebben op verschillende manieren geleerd hoe we kunnen controleren of de sleutel in het woordenboek staat. We hebben ook geleerd hoe we deze methoden op verschillende instanties kunnen toepassen om te zien of de sleutel in het woordenboek staat. We hebben ook gezien hoe elke optie een andere hoeveelheid tijd kost.