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