logo

Kuinka tarkistaa, onko avain olemassa Python-sanakirjassa

Pythonissa sanakirja on järjestämätön joukko tietoarvoja, joita voidaan käyttää arvojen hallintaan ja tallentamiseen kuten kartta. Toisin kuin muut tietotyypit, jotka voivat sisältää vain tietyn arvon alkiona, sanakirja voi sisältää avain-arvo-parin. Sanakirja sisältää avain-arvo-parin sen tehostamiseksi. Polymorfismi ei ole sallittu sanakirjan avaimissa. Sanakirja rakennetaan Pythonissa sulkemalla peräkkäiset merkinnät aaltosulkeisiin ja erottamalla ne pilkulla. Sanakirja tallentaa arvopareja, joista yksi on Key ja toinen Key:value parielementti.

Sanakirjassa arvot voivat olla mitä tahansa tietorakennetta ja ne voidaan jopa replikoida, mutta avaimia, joiden on oltava muuttumattomia, ei voida kopioida.

Avaimen tarkistaminen sanakirjasta

Pythonissa sanakirja on todellakin hyödyllinen tietorakenne, joka tallentaa avainarvopareja. Ohjelmoinnissa vaaditaan usein tietyn avaimen arvon saamista sanakirjasta; Tietyn avaimen olemassaoloa sanakirjassa ei kuitenkaan aina taata. Tästä syystä on hyvä idea tarkistaa, kuuluuko avain sanakirjaan, ennen kuin haet sen arvon.

has_key()

Jos tietty avain löytyy sanakirjasta, has_key() metodi palauttaa true; muussa tapauksessa se palauttaa väärin.

Python 3 on poistanut tämän käytöstä. Tätä menetelmää voidaan käyttää, jos käytämme vanhempaa versiota kuin Python 3.

Alla olevaa komentoa voidaan käyttää Python-version vahvistamiseen cmd:ssä.

Koodi:

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

Lähtö:

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

Koska tämä koodi suoritettiin Python 3:ssa, se näyttää virheen.

jos-in lausunto

Tämä menetelmä tarkistaa if-in-käskyn avulla, onko sanakirjassa tietty avain. Palkkaamme jäsenoperaattorin sisään , tällä tavalla. Tätä operaattoria käytetään määrittämään, kuuluuko jokin arvo toiselle. Se antaa sinulle loogisen tuloksen.

Koodi:

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

Lähtö:

 Key exists in Animals 

Nyt tarkastelemme negatiivista tapausta.

Koodi:

kokeile saada kiinni javalla
 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') 

Lähtö:

 There is no key '4' in Animals 

Samoin, ei mukana -operaattoria voidaan käyttää sen selvittämiseen, ettei sanakirjassa ole avainta. Muista kuitenkin, että sisään -toiminto on kirjainkoon erottelukykyinen, joten joko varmista, että kaikki näppäimet ovat samat, tai käytä korkeampi () tai alempi() menetelmiä.

Koodi:

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

Lähtö:

 Key exists in Animals 

Käytä get()-menetelmää

Get()-menetelmä toimittaa liittyvän avaimen arvon sanakirjaan. Jos avainta ei ole, se palauttaa joko Ei mitään tai oletusarvon (jos sellainen toimitettiin). Voimme välittää avaimen tälle menetelmälle ja nähdä, onko se olemassa annetussa Python-sanakirjassa.

Get()-funktion syntaksi on:

 dict_name.get(keyname, value) 

Tässä sanelunimi on käyttämäsi sanakirjan nimi.

Parametrit

    Keyname-Arvon avainnimi, jonka haluat palauttaa.arvo-Jos avainta ei ole, tämä arvo toimitetaan lisävarusteena.

Koodi:

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

Lähtö:

diskreetti matemaattinen negaatio
 Key exists in Animals 

Otetaan nyt negatiivinen tapaus,

Koodi:

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

Lähtö:

 There is no key '5' in Animals 

Kun käytät tätä menetelmää, pidä tämä mielessä, että jos meillä on avain, jonka arvo on Ei mitään, se ei ole tarkka. Jos meillä ei ole sellaista, tämä tekniikka riittää. Jos haluamme käyttää tällä menetelmällä palautettuja arvoja, voimme tallentaa ne muuttujaan.

Käyttämällä avaimia ()

The avaimet () -funktiota ja 'in'-operaattoria voidaan käyttää tarkistamaan, onko sanakirjassa avainta. The avaimet () menetelmä palauttaa luettelon sanakirjassa olevista avaimista, ja if, in -lause tarkistaa, onko annettu avain luettelossa. Se palauttaa True, jos avain on olemassa; muussa tapauksessa se palauttaa False.

Syöte

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

Lähtö:

 Key exists in Animals 

Tarkista, onko sanakirjassa useita avaimia.

Yhdessä lauseessa voimme myös tarkistaa, sisältääkö sanakirja useita avaimia. Voimme käyttää kaikki() toimintoa yhdessä luettelon ymmärtämisen kanssa nähdäksesi, sisältääkö sanakirja monta vai kaikki näppäimet.

Koodi:

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

Lähtö:

 Not all the keys are there in Animals 

Tarkista sanakirjaluettelosta, onko avain olemassa

Sanakirjaluettelo on kokoelma sanakirjoja, jotka löytyvät luettelosta.

  • lista_sanakirjasta - luettelo, jossa on kolme sanakirjaobjektia.
  • 'b' sanakirjaluettelon avainten avaimissa - luo avainluettelon sanakirjaluettelossa käyttämällä luettelon ymmärtämistä. Katso sitten luettelosta, onko sellainen saatavilla. Se palauttaa luettelon, jossa on True avaimille, jotka ovat 'b' ja False avaimille, jotka eivät ole yksi.
  • any() - Tarkistaa luettelon ymmärtämisen tarjoaman tosi/epätosi-luettelon. Avain 'b' on sanakirjaluettelossa, jos se sisältää vähintään yhden True-arvon. Jos-lohko suoritetaan sen jälkeen, kun se palauttaa True-arvon. Muussa tapauksessa 'else' -lohko suoritetaan.

Koodi:

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

Lähtö:

 Key exists in list_of_dictionaries 

Tarkista, onko avain JSON-sanakirjassa

JSON tulee sanoista 'Javascript Object Notation', ja se on avain-arvo-pari, joka tallentaa arvot.

The json.loads() menetelmää voidaan käyttää sanakirjan rakentamiseen JSON-tekstistä.

Sitten, kuten alla näkyy, voimme käyttää 'jos ja sisään' nähdäksemme, onko avain läsnä JSON-sanakirjassa.

Syöte

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

Lähtö:

 Key is present in the JASON dictionary 

Johtopäätös

Yhteenvetona olemme oppineet tarkistamaan, onko avain sanakirjassa useilla tavoilla. Olemme myös oppineet soveltamaan näitä menetelmiä eri tilanteissa nähdäksemme, onko avain sanakirjassa. Olemme myös nähneet, kuinka kukin vaihtoehto vie erilaisen ajan.