logo

__dict__ v Pythonu

V Pythonu je slovník an neuspořádaná množina datových hodnot to by mohlo být slouží k ukládání datových hodnot podobně jako mapa. Na rozdíl od jiných datových typů, které mohou obsahovat pouze jednu hodnotu na prvek, mohou slovníky obsahovat také a klíč:hodnota pár. K vytvoření slovníku Efektivnější , je nabízena hodnota klíče.

Pokud se týká přístupu k atributu, tečka '.' (jako v x.any_atribute ) je vše, co většina uživatelů zná. Zjednodušeně řečeno, atribut access je proces získání objektu, který je připojen k objektu, který již máte . Pro někoho, kdo používá Python, to může vypadat velmi jednoduše, aniž by zacházel příliš daleko do specifik. V zákulisí tohoto relativně jednoduchého procesu se však děje mnoho.

Co je _dikt_?

Každý modul má unikátní vlastnost tzv __diktovat__. Tento slovník obsahuje tabulku symbolů pro modul . (zapisovatelné) charakteristiky položky jsou uloženy ve slovníku nebo jiném mapovacím objektu.

Jednoduše řečeno, každý objekt v Pythonu má a vlastnost, která je označena symbolem __dict__ . Kromě toho má tento objekt všechny vlastnosti, které pro něj byly specifikovány. Jiný název pro __dict__ je mappingproxy objekt. Můžeme použít slovník přes použití vlastnosti __dict__ k objektu třídy.

Syntaxe:

 object.__dict__ 

Pří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ýstup:

 {'identity': 'Lion', 'age': '10'} 

Příklad 2:

Tento příklad demonstruje, že pomocí atribut __dict__ lze vytvořit slovník z libovolného 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ýstup:

 The Dictionary from object fields belongs to the class Flowers : {'Rose': 'red', 'Lily': 'white', 'Lotus': 'pink'} 

Příklad 3:

 def funct(): pass funct.practice = 1 print(funct.__dict__) class PracticeClass: x = 1 def practice_function(self): pass print(PracticeClass.__dict__) 

Výstup:

 {'practice': 1} {'__module__': '__main__', 'x': 1, 'practice_function': , '__dict__': , '__weakref__': , '__doc__': None} 

Použití slovníku bez použití __dict__ v Pythonu:

Vytvoření slovníku:

V Pythonu lze slovník vytvořit uzavřením a seznam položek ve složených závorkách a oddělujících je čárkou . Slovník ukládá dvojice hodnot, kde jeden prvek páru je klíč a druhý jeho Klíč:hodnota . Na rozdíl od klíče, který nelze opakovat a musí být neměnné, hodnoty ve slovnících mohou obsahovat jakýkoli typ dat a lze je duplikovat .

Prvky jsou oddělené čárkami , je každý klíč odlišen od své hodnoty dvojtečkou (:), a celá struktura je obsažena v složené závorky . Slovník, který je zcela prostý všech slov, je napsán takto: {} .

Klíče slovníku musí být neměnný , jako celá čísla, n-tice nebo řetězce , ačkoli hodnoty mohou být libovolného typu. Ve slovnících Pythonu je stejný název klíče napsaný jinak považován za zřetelný klíč. Berte to prosím na vědomí slovníkové klíče rozlišují velká a malá písmena ; klíče s podobným názvem, ale odlišnou velikostí písmen, budou zpracovány odlišně.

Pří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ýstup:

výukový program pyspark
 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 vestavěná metoda dict() umožňuje také tvorba slovníků . Jednoduše řečeno dvě složené závorky {} společně vyústí v an prázdný slovník .

Pří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ýstup:

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

Složitost vytváření slovníku:

  • Časová složitost: O(délka (diktát))
  • Prostorová složitost: Na)

Vnořené slovníky:

Je to forma slovníku, kde je jeden nebo více než jeden klíčů má jako hodnotu připojený slovník klíče.

Pří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ýstup:

 Creating a Nested Dictionary : {1: 'JAVA', 2: 'T', 3: 'POINT', 4: {1: 'JavaTpoint', 2: 'Great'}} 

Přidání prvků do slovníku:

Existují několik způsobů přidávání prvků do slovníku Pythonu. Zadáním hodnoty a klíče společně, např. Dict[Key] = 'Hodnota', do slovníku lze přidat jednu hodnotu najednou. Za použití vestavěná funkce update(). , lze upravit existující hodnotu ve Slovníku. Existující slovník lze také rozšířit vnořené hodnoty klíče .

Poznámka: Při přidávání hodnoty se hodnota aktualizuje, pokud kombinace klíč–hodnota již existuje. Pokud ne, přidá se do slovníku nový klíč a hodnota.

Příklad:

 # 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ýstup:

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

Složitost přidávání prvků do slovníku:

  • Časová náročnost: O(1)/O(n)
  • Prostorová složitost: O(1)

Přístup k prvkům slovníku:

Slovník využívá klíče , zatímco jiné datové typy vyžadují k načtení hodnot indexování. Klíče lze použít s funkce get(). nebo uvnitř hranatých závorek [].

V případě, že a klíč nelze najít ve slovníku, Je vytvořena chyba KeyError pokud použijeme hranaté závorky []. Na druhou stranu, pokud klíč nelze najít, funkce get() vrací Žádné.

Pří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ýstup:

 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 

Složitost přístupu k prvkům ve slovníku:

  • Časová náročnost: O(1)
  • Prostorová složitost: O(1)

Přístup k prvku vnořeného slovníku:

Můžeme si vzít na pomoc technika indexování [] získat hodnotu existujícího klíče v vnořený slovník .

Příklad:

 # 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ýstup:

strojopis každý
 {3: 'JavatPoint'} JavatPoint Website 

Metody vestavěného slovníku:

Průhledná() :

Funkce dict.clear() eliminuje každý pár klíč–hodnota ze slovníku.

kopírovat() :

A mělčí kopie slovníku je vrácena metodou dict.copy().

fromkeys() :

Pomocí dodaného iterovatelného (řetězec, seznam, sada nebo n-tice) jako klíče a zadaná hodnota, funkce dict.fromkeys() vytvoří nový slovník .

dostat() :

Tento udává související hodnotu s daným klíčem.

položky():

A objekt zobrazení slovníku , který nabízí dynamickou prezentaci položek slovníku jako seznam párů klíč-hodnota je vráceno pomocí funkce dict.items(). Když je slovník aktualizován, toto Objekt zobrazení je také aktualizován .

dict.keys() :

Funkce dict.keys() vrátí objekt pohledu slovníku se slovníkem seznam klíčů.

pop():

Tento vrátí hodnotu klíče po jeho odstranění . Pokud ve slovníku chybí klíč, vyhodí a KeyError nebo vrátí výchozí hodnota pokud byla poskytnuta.

napít se() :

Tento odebere jednu položku ze slovníku a vrátí n-tici párů (klíč, hodnota). The Last In First Out (LIFO) sekvence se používá pro vracení párů.

setdefault() :

Tento vrátí hodnotu slovníku pro daný klíč . Pokud klíč nelze zjistit, klíč s dodaným výchozí hodnota je přidáno. Nastavuje se Žádný jako výchozí hodnota pokud není dodáván.

hodnoty():

vymazat mezipaměť npm

The objekt zobrazení slovníku, který nabízí dynamický pohled každé hodnoty, která je přítomný ve slovníku, je vrácen pomocí funkce dict.values(). Když je slovník aktualizován, toto Objekt zobrazení je také aktualizován .

Aktualizace() :

A slovník nebo jakýkoli iterovatelný s páry klíč–hodnota , jako je n-tice, lze aktualizovat pomocí funkce dict.update().

Pří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ýstup:

 {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++']) 

Rozdíl mezi slovníkem a seznamem:

Datové struktury jako a seznam a slovník jsou zásadně odlišné. An objednané série položek lze uložit do a seznam abychom do něj mohli indexovat nebo přes něj iterovat. Seznamy lze také měnit, i když již byly vygenerovány, protože se jedná o měnitelný typ. The Pythonský slovník je úložiště párů klíč–hodnota a provedení a hashovací tabulka . Nesleduje žádnou konkrétní sekvenci a vyžaduje hashovatelné klíče. Navíc je rychlý pro vyhledávání klíčů.

A seznam prvky obsahují následující vlastnosti:

  • Pokud nejsou konkrétně přeuspořádány, jsou zachovat jejich aktuální pořadí (například řazením seznamu).
  • Mohou být jakéhokoli typu, nebo dokonce a kombinace druhů .
  • Prostřednictvím číselných (nulových) indexů, můžeme k nim přistupovat.

Vlastnosti slovník prvky jsou následující:

  • Každý záznam má a hodnotu a klíč .
  • Objednávky jsou není zaručeno .
  • Klíčové hodnotyse používají pro přístup k prvkům.Jakýkoli typ hashtable (jiný než diktát)lze použít pro klíčové hodnoty a typy lze kombinovat.Jakákoli hodnotavčetně dalších diktátů, je povoleno a typy lze kombinovat.

Použití:

Používáme a slovník pokud máme a sada odlišných klíčů, které odpovídají hodnotám , ale a seznam když máme objednaná skupina věcí .

závěr:

  • V počítačovém jazyce, slovníky jsou druhem datové struktury používané k uchovávání informací že to nějak souvisí.
  • Každý modul má unikátní vlastnost tzv __diktovat__.
  • __diktovat__ obsahuje tabulku symbolů pro modul .
  • Vlastnosti prvku jsou uloženy v a mapovací objekt.
  • Každý objekt v Pythonu má a vlastnost, která je označena symbolem __dict__ .
  • Jiné jméno pro __dict__ je také známé jako objekt mappingproxy.
  • Dvě součásti pythonského slovníku se nazývají Klíče a hodnoty .
  • Vy nemusí přijímat vaše data zpět v podobném pořadí, v jakém je zadáváte, protože slovníky neuchovávají svá data v žádném konkrétním pořadí.
  • Klíče se budou skládat z právě jedna věc.
  • Hodnoty mohou být celá čísla, seznamy, seznamy uvnitř seznamů , atd.
  • Nemůže být více než jeden záznam na klíč (žádný duplicitní klíč není povolen)
  • Klíče slovníku musí být neměnný , jako celá čísla, n-tice nebo řetězce , ačkoli hodnoty mohou být libovolného typu.
  • Slovník klíče rozlišují velká a malá písmena ; ve slovnících Pythonu se stejný název klíče napsaný jinak považuje za a zřetelný klíč .