V Pythone je slovník an neusporiadaný súbor hodnôt údajov to by mohlo byť slúži na ukladanie dátových hodnôt podobne ako mapa. Na rozdiel od iných dátových typov, ktoré môžu obsahovať iba jednu hodnotu na prvok, slovníky môžu obsahovať aj a kľúč:hodnota pár. Na vytvorenie slovníka viac efektívny , ponúka sa hodnota kľúča.
Ak ide o prístup k atribútu, bodka '.' (ako v x.akýkoľvek_atribút ) je všetko, čo väčšina používateľov pozná. Jednoducho povedané, atribútový prístup je proces získavania objektu, ktorý je pripojený k objektu, ktorý už máte . Pre niekoho, kto používa Python, to môže vyzerať veľmi jednoducho bez toho, aby zachádzal príliš ďaleko do špecifík. V zákulisí tohto pomerne jednoduchého procesu sa však deje veľa.
Čo je _dikt_?
Každý modul má jedinečnú vlastnosť tzv __diktovať__. Tento slovník obsahuje tabuľku symbolov pre modul . (zapisovateľné) charakteristiky položky sú uložené v slovníku alebo inom mapovacom objekte.
Zjednodušene povedané, každý objekt v Pythone má a vlastnosť, ktorá je označená symbolom __dict__ . Okrem toho má tento objekt všetky vlastnosti, ktoré boli preň špecifikované. Iný názov pre __dikt__ je mappingproxy objekt. Môžeme použiť slovník cez použitím vlastnosti __dict__ na objekt triedy.
Syntax:
object.__dict__
Príklad:
class AnimalClass: def __init__(self,identity,age): self.identity = identity self.age = age def feature(self): if self.age == '10': return True else: return False ac = AnimalClass('Lion','10') print(ac.__dict__)
Výkon:
{'identity': 'Lion', 'age': '10'}
Príklad 2:
Tento príklad demonštruje, že pomocou atribút __dict__ dalo by sa vytvoriť slovník z akéhokoľvek objektu:
# class Flowers is defined class Flowers: # constructor def __init__(self): # keys are being initialized with # their corresponding values self.Rose = 'red' self.Lily = 'white' self.Lotus = 'pink' def displayit(self): print('The Dictionary from object fields belongs to the class Flowers :') # object animal of class Animals flower = Flowers() # calling displayit function flower.displayit() # calling the attribute __dict__ on flower # object and making it print it print(flower.__dict__)
Výkon:
The Dictionary from object fields belongs to the class Flowers : {'Rose': 'red', 'Lily': 'white', 'Lotus': 'pink'}
Príklad 3:
def funct(): pass funct.practice = 1 print(funct.__dict__) class PracticeClass: x = 1 def practice_function(self): pass print(PracticeClass.__dict__)
Výkon:
{'practice': 1} {'__module__': '__main__', 'x': 1, 'practice_function': , '__dict__': , '__weakref__': , '__doc__': None}
Používanie slovníka bez použitia __dict__ v Pythone:
Vytvorenie slovníka:
V Pythone môže byť slovník vytvorený priložením a zoznam záznamov v zložených zátvorkách a oddeľte ich čiarkou . Slovník ukladá páry hodnôt, kde jeden prvok páru je kľúč a druhý jeho Kľúč:hodnota . Na rozdiel od kľúče, ktoré nemožno opakovať a musia byť nemenné, hodnoty v slovníkoch môžu byť akéhokoľvek typu údajov a môžu byť duplikované .
urfi javed
Prvky sú oddelené čiarkami , každý kľúč je odlíšený od jeho hodnoty dvojbodkou (:), a celá štruktúra je obsiahnutá v kučeravé zátvorky . Slovník, ktorý je úplne zbavený všetkých slov, je napísaný takto: {} .
Kľúče slovníka musia byť nemenný , ako napr celé čísla, n-tice alebo reťazce , hoci hodnoty môžu byť akéhokoľvek typu. V slovníkoch Pythonu sa rovnaký názov kľúča napísaný inak považuje za zreteľný kľúč. Berte to prosím na vedomie slovníkové klávesy rozlišujú veľké a malé písmená ; s kľúčmi s podobným názvom, ale odlišnými veľkosťami písmen, sa bude zaobchádzať odlišne.
Príklad:
# Creating a Dictionary # using Integer Keys only Dict = {1: 'JAVA', 2: 'T', 3: 'POINT'} print(' Creating a Dictionary by using Integer Keys : ') print(Dict) # Creating a Dictionary # using various Mixed keys Dict = {'Company': 'JavaTpoint', 7: [22, 35, 46, 97]} print(' Creating a Dictionary by using Mixed Keys : ') print(Dict)
Výkon:
Creating a Dictionary by using Integer Keys : {1: 'JAVA', 2: 'T', 3: 'POINT'} Creating a Dictionary by using Mixed Keys : {'Company': 'JavaTpoint', 7: [22, 35, 46, 97]}
The vstavaná metóda dict() umožňuje aj tvorba slovníkov . Jednoducho povedané dve zložené zátvorky {} spolu vyústi do an prázdny slovník .
Príklad:
# Creating an empty Dictionary myDict = {} print('This is an Empty Dictionary: ') print(myDict) # Creating a Dictionary # using the dict() method myDict = dict({1: 'JAVA', 2: 'T', 3: 'POINT'}) print(' Creating a Dictionary by using the dict() method : ') print(myDict) # Creating a Dictionary # using each item as a different Pair myDict = dict([(1, 'JavaTpoint'), (2, 'Great')]) print(' Creating a Dictionary by using each item as a different pair : ') print(myDict)
Výkon:
This is an Empty Dictionary: {} Creating a Dictionary by using the dict() method : {1: 'JAVA', 2: 'T', 3: 'POINT'} Creating a Dictionary by using each item as a different pair : {1: 'JavaTpoint', 2: 'Great'}
Zložitosti pri vytváraní slovníka:
- Časová zložitosť: O(dĺžka (diktát))
- Priestorová zložitosť: O(n)
Vnorené slovníky:
Je to forma slovníka, kde je jeden alebo viac ako jeden kľúče má ako hodnotu pripojený slovník kľúča.
Príklad:
# Creating a Nested Dictionary # as mentioned above using a dictionary as a value to a key in # a dictionary myDict = dict({1: 'JAVA', 2: 'T', 3: 'POINT', 4: {1: 'JavaTpoint', 2: 'Great'}}) print(' Creating a Nested Dictionary : ') print(myDict)
Výkon:
Creating a Nested Dictionary : {1: 'JAVA', 2: 'T', 3: 'POINT', 4: {1: 'JavaTpoint', 2: 'Great'}}
Pridanie prvkov do slovníka:
Existujú niekoľko spôsobov pridávania prvkov do slovníka Pythonu. Spoločným zadaním hodnoty a kľúča, napr. Dict[Key] = 'Hodnota', do slovníka možno naraz pridať jednu hodnotu. Pomocou vstavaná funkcia update(). , je možné upraviť existujúcu hodnotu v slovníku. Existujúci slovník môže byť tiež rozšírený vnorené kľúčové hodnoty .
Poznámka: Pri pridávaní hodnoty sa hodnota aktualizuje, ak kombinácia kľúča a hodnoty už existuje. Ak nie, do slovníka sa pridá nový kľúč a hodnota.
Príklad:
ridhima tiwari
# Creating Empty Dictionary myDict = {} print('Empty Dictionary: ') print(myDict) # Adding elements only one at a time myDict[0] = 'Java' myDict[3] = 'T' myDict[6] = 41 print(' Dictionary after the addition of 3 elements: ') print(myDict) # Adding a set of values # to a particular Key myDict['settingValues'] = 7, 8, 9 print(' Dictionary after the adding a set of values to a key : ') print(myDict) # Updating the existing Key's Value myDict[3] = 'tPoint' print(' Dictionary after Updated key value: ') print(myDict) # Adding Nested Key value to Dictionary myDict[8] = {'Nested' :{'A' : 'boy', 'B' : 'Girl'}} print(' Dictionary after Addition of a Nested Key: ') print(myDict)
Výkon:
Empty Dictionary: {} Dictionary after the addition of 3 elements: {0: 'Java', 3: 'T', 6: 41} Dictionary after the adding a set of values to a key : {0: 'Java', 3: 'T', 6: 41, 'settingValues': (7, 8, 9)} Dictionary after Updated key value: {0: 'Java', 3: 'tPoint', 6: 41, 'settingValues': (7, 8, 9)} Dictionary after Addition of a Nested Key: {0: 'Java', 3: 'tPoint', 6: 41, 'settingValues': (7, 8, 9), 8: {'Nested': {'A': 'boy', 'B': 'Girl'}}}
Zložitosti pridávania prvkov do slovníka:
- Časová zložitosť: O(1)/O(n)
- Priestorová zložitosť: O(1)
Prístup k prvkom slovníka:
Používa slovník kľúče , zatiaľ čo iné typy údajov vyžadujú indexovanie na získanie hodnôt. Kľúče možno použiť s funkcia get(). alebo v hranatých zátvorkách [].
V prípade, že a kľúč nemožno nájsť v slovníku, Vytvorí sa chyba KeyError ak používame hranaté zátvorky []. Na druhej strane, ak kľúč nemožno nájsť, funkcia get() vracia Žiadne.
Príklad:
# Python program to demonstrate the # accessing of an element, from a Dictionary # Creating a Dictionary myDict = {1: 'Java', 'name': 'T', 2: 'Point', 4: 'Website'} # accessing an element using key print('Accessing an element using the key:') print(myDict['name']) print('Accessing another element using the key:') print(myDict[4]) # accessing an element using the get() method print('Accessing an using the get() method:') print(myDict.get(2)) print('Accessing another using the get() method:') print(myDict.get(1))
Výkon:
Accessing an element using the key: T Accessing another element using the key: Website Accessing an using the get() method: Point Accessing another using the get() method: Java
Zložitosti prístupu k prvkom v slovníku:
- Časová zložitosť: O(1)
- Priestorová zložitosť: O(1)
Prístup k prvku vnoreného slovníka:
Môžeme si vziať na pomoc technika indexovania [] získať hodnotu existujúceho kľúča v vnorený slovník .
Príklad:
powershell viacriadkový komentár
# Creating a Dictionary myDict = {'myDict1': {3: 'JavatPoint'}, 'myDict2': {'Info.': 'Website'}} # Accessing the elements using the key print(myDict['myDict1']) print(myDict['myDict1'][3]) print(myDict['myDict2']['Info.'])
Výkon:
{3: 'JavatPoint'} JavatPoint Website
Vstavané metódy slovníka:
jasný() :
Funkcia dict.clear() eliminuje každý pár kľúč – hodnota zo slovníka.
kopírovať():
A plytšia kópia slovníka je vrátená metódou dict.copy().
fromkeys() :
Pomocou dodaného iterovateľného (reťazec, zoznam, množina alebo n-tica) ako kľúče a zadaná hodnota, funkcia dict.fromkeys() vytvorí nový slovník .
získať():
Toto dáva súvisiacu hodnotu s daným kľúčom.
položky():
A objekt zobrazenia slovníka , ktorý ponúka dynamickú prezentáciu položiek slovníka ako zoznam párov kľúč – hodnota sa vráti pomocou funkcie dict.items(). Keď je slovník aktualizovaný, toto objekt zobrazenia je tiež aktualizovaný .
dict.keys() :
Funkcia dict.keys() vráti objekt zobrazenia slovníka so slovníkom zoznam kľúčov.
pop():
Toto vráti hodnotu kľúča po jeho odstránení . Ak v slovníku chýba kľúč, vyhodí buď a KeyError alebo vráti predvolená hodnota ak bola poskytnutá.
piť ():
Toto odstráni jednu položku zo slovníka a vráti n-ticu párov (kľúč, hodnota). The Last In First Out (LIFO) sekvencia sa používa na vracanie párov.
setdefault() :
Toto vráti hodnotu slovníka pre daný kľúč . Ak kľúč nenájdete, kľúč s dodaným zariadením predvolená hodnota sa pridáva. Nastavuje sa žiadne ako predvolená hodnota ak nie je dodaný.
hodnoty():
rozdiel medzi gigabajtom a megabajtom
The objekt zobrazenia slovníka, ktorý ponúka dynamický pohľad každej hodnoty, ktorá je v slovníku sa vráti pomocou funkcie dict.values(). Keď je slovník aktualizovaný, toto objekt zobrazenia je tiež aktualizovaný .
aktualizovať():
A slovník alebo akýkoľvek iterovateľný s pármi kľúč – hodnota , napríklad n-tica, je možné aktualizovať pomocou funkcie dict.update().
Príklad:
# Example to demonstrate all dictionary methods #Creating a Dictionary mydict1={1:'HTML',2:'CSS',3:'Javascript',4:'Python'} #copy method mydict2=mydict1.copy() print(mydict2) #clear method mydict1.clear() print(mydict1) #get method print(mydict2.get(1)) #items method print(mydict2.items()) #keys method print(mydict2.keys()) #pop method mydict2.pop(4) print(mydict2) #popitem method mydict2.popitem() print(mydict2) #update method mydict2.update({2:'C++'}) print(mydict2) #values method print(mydict2.values())
Výkon:
{1: 'HTML', 2: 'CSS', 3: 'Javascript', 4: 'Python'} {} HTML dict_items([(1, 'HTML'), (2, 'CSS'), (3, 'Javascript'), (4, 'Python')]) dict_keys([1, 2, 3, 4]) {1: 'HTML', 2: 'CSS', 3: 'Javascript'} {1: 'HTML', 2: 'CSS'} {1: 'HTML', 2: 'C++'} dict_values(['HTML', 'C++'])
Rozdiel medzi slovníkom a zoznamom:
Dátové štruktúry ako a zoznam a slovník sú zásadne odlišné. An objednaná séria položiek môžu byť uložené v a zoznam aby sme ho mohli indexovať alebo ho opakovať. Zoznamy je možné meniť aj po ich vygenerovaní, keďže ide o meniteľný typ. The Pythonský slovník je a úložisko párov kľúč – hodnota a implementácia a hash tabuľka . Nesleduje žiadnu konkrétnu sekvenciu a vyžaduje hashovateľné kľúče. Okrem toho je rýchly na vyhľadávanie kľúčov.
A zoznamov prvky obsahujú nasledujúce vlastnosti:
- Pokiaľ nie sú špecificky preradené, oni zachovať ich aktuálne poradie (napríklad triedením zoznamu).
- Môžu byť akéhokoľvek typu, alebo dokonca a kombinácia druhov .
Vlastnosti slovník prvky sú nasledovné:
- Každý záznam má a hodnotu a kľúč .
- Objednávky sú nie je zaručené .
Použitie:
Používame a slovník ak máme a súbor odlišných kľúčov, ktoré zodpovedajú hodnotám , ale a zoznam keď máme objednaná skupina vecí .
záver:
- V počítačovom jazyku, slovníky sú akousi dátovou štruktúrou používanou na uchovávanie informácií to nejako súvisí.
- Každý modul má jedinečnú vlastnosť tzv __diktovať__.
- __diktovať__ obsahuje tabuľku symbolov pre modul .
- Vlastnosti prvku sú uložené v a mapovací objekt.
- Každý objekt v Pythone má a vlastnosť, ktorá je označená symbolom __dict__ .
- Iný názov pre __dict__ je známy aj ako objekt mappingproxy.
- Dve zložky pythonského slovníka sa nazývajú Kľúče a hodnoty .
- vy nemusí dostať vaše údaje späť v podobnom poradí, v akom ich zadávate, pretože slovníky neuchovávajú svoje údaje v žiadnom konkrétnom poradí.
- Kľúče budú pozostávať z len jedna vec.
- Hodnoty môžu byť celé čísla, zoznamy, zoznamy vo vnútri zoznamov , atď.
- Nemôže byť viac ako jeden záznam na kľúč (nie je povolený žiadny duplicitný kľúč)
- Kľúče slovníka musia byť nemenný , ako napr celé čísla, n-tice alebo reťazce , hoci hodnoty môžu byť akéhokoľvek typu.
- Slovník kľúče rozlišujú malé a veľké písmená ; v slovníkoch Pythonu sa rovnaký názov kľúča napísaný inak považuje za a zreteľný kľúč .