Slovník je neusporiadaná zbierka údajových hodnôt v Pythone používaná na ukladanie údajových hodnôt, ako sú mapy. Slovník obsahuje páry kľúč-hodnota namiesto jednej hodnoty ako prvku ako iné typy údajov. Kľúč implementovaný v slovníku musí byť jedinečný a nemenný. To znamená, že pythonovská n-tica môže byť kľúčom, ale pythonovský zoznam nemôže byť kľúčom v slovníku. Slovník môžeme vytvoriť umiestnením sekvencie prvkov do zložených zátvoriek {}, pričom čiarkou ',' možno oddeliť hodnoty.
Príklad 1:
Dict_1 = {1: 'A', 2: 'B', 3: 'C', 4: 'D'} print ('Dictionary: ') print (Dict_1) print ('key pair 1: ', Dict_1[1]) print ('key pair 3: ', Dict_1[3])
Výkon:
java porovnávať reťazce
Dictionary: {1: 'A', 2: 'B', 3: 'C', 4: 'D'} key pair 1: A key pair 3: C
Ak sa však pokúsime vytlačiť 5. hodnotu kľúča, dostaneme chybu, pretože 'Dict_1' neobsahuje 5. hodnotu kľúča.
Príklad 2:
Dict_1 = {1: 'A', 2: 'B', 3: 'C', 4: 'D'} print ('Dictionary: ') print (Dict_1) print ('key pair 5: ', Dict_1[5])
Výkon:
Dictionary: {1: 'A', 2: 'B', 3: 'C', 4: 'D'} --------------------------------------------------------------------------- KeyError Traceback (most recent call last) in 2 print ('Dictionary: ') 3 print (Dict_1) ----> 4 print ('key pair 5: ', Dict_1[5]) KeyError: 5
Kedykoľvek keyError sa môže stať problémom pre používateľov. Túto chybu môžeme prekonať použitím iného slovníka Pythonu, ktorý je ako kontajner známy ako Defaultdict . Používatelia môžu nájsť tento slovník vo vnútri 'kolekcie' modul.
defaultdict
Defaultdict je slovník Pythonu, ktorý je ako kontajner prítomný v module 'collections'. Je to podtrieda triedy slovník, ktorá sa používa na vrátenie objektu podobného slovníku. Defaultdict aj dictionary majú rovnakú funkcionalitu, okrem toho defaultdict nikdy nevyvoláva žiadnu KeyError, pretože poskytuje predvolenú hodnotu pre kľúč, ktorý neexistuje v slovníku vytvorenom používateľom.
Syntax:
defaultdict(default_factory)
Parametre:
Príklad:
poštár
from collections import defaultdict as DD # Function for returning a default values for the # keys which are not present in the dictionary def default_value(): return 'This key is not present' # Now, we will define the dict dict_1 = DD(default_value) dict_1['ABC'] = 1 dict_1['DEF'] = 2 dict_1['GHI'] = 3 dict_1['JKL'] = 4 print ('Dictionary: ') print (dict_1) print ('key pair 1: ', dict_1['ABC']) print ('key pair 3: ', dict_1['GHI']) print ('key pair 5: ', dict_1['MNO'])
Výkon:
Dictionary: defaultdict(, {'ABC': 1, 'DEF': 2, 'GHI': 3, 'JKL': 4}) key pair 1: 1 key pair 3: 3 key pair 5: This key is not present
Vnútorné fungovanie defaultdiktu
Keď použijeme defaultdict, získame dodatočnú zapisovateľnú premennú inštancie a jednu metódu okrem štandardných operácií so slovníkom. Premenná inštancie s možnosťou zápisu je parameter default_factory a __chýba__ je metóda.
Príklad:
from collections import defaultdict as DD dict_1 = DD(lambda: 'This key is not present') dict_1['ABC'] = 1 dict_1['DEF'] = 2 dict_1['GHI'] = 3 dict_1['JKL'] = 4 print ('Dictionary: ') print (dict_1) print ('key value 1: ', dict_1['ABC']) print ('key value 3: ', dict_1['GHI']) print ('key value 5: ', dict_1['MNO'])
Výkon:
Dictionary: defaultdict(<function at 0x0000019efc4b58b0>, {'ABC': 1, 'DEF': 2, 'GHI': 3, 'JKL': 4}) key value 1: 1 key value 3: 3 key value 5: This key is not present </function>
Príklad:
from collections import defaultdict as DD dict_1 = DD(lambda: 'This key is not present') dict_1['ABC'] = 1 dict_1['DEF'] = 2 dict_1['GHI'] = 3 dict_1['JKL'] = 4 print ('Dictionary: ') print (dict_1) print ('key value 1: ', dict_1.__missing__('ABC')) print ('key value 4: ', dict_1['JKL']) print ('key value 5: ', dict_1.__missing__('MNO'))
Výkon:
veľkosť pytóna
Dictionary: defaultdict(<function at 0x0000019efc4b5670>, {'ABC': 1, 'DEF': 2, 'GHI': 3, 'JKL': 4}) key value 1: This key is not present key value 4: 4 key value 5: This key is not present </function>
Ako používať „Zoznam“ ako default_factory
Môžeme odovzdať triedu zoznamu ako argument default_factory a ten vytvorí defaultdict s hodnotami, ktoré sú nastavené vo formáte zoznamu.
Príklad:
from collections import defaultdict as DD # Defining a dictionary dict_1 = DD(list) for k in range(7, 12): dict_1[k].append(k) print ('Dictionary with values as list:') print (dict_1)
Výkon:
Dictionary with values as list: defaultdict(, {7: [7], 8: [8], 9: [9], 10: [10], 11: [11]})
Ako používať 'int' ako default_factory
Môžeme odovzdať triedu int ako argument default_factory a vytvorí defaultdict s predvolenou hodnotou nastavenou na nulu.
Príklad:
from collections import defaultdict as DD # Defining the dict dict_1 = DD(int) J = [1, 2, 3, 4, 2, 4, 1, 2] # Now, we will iterate through the list 'J' # for keeping the count for k in J: # As, The default value is 0 # so we do not need to # enter the key first dict_1[k] += 1 print(dict_1)
Výkon:
defaultdict(, {1: 2, 2: 3, 3: 1, 4: 2})
Záver
V tomto návode sme diskutovali o defaultdict v Pythone a o tom, ako môžeme vykonávať rôzne operácie s defaultdict pomocou parametra default_factory.