logo

__дицт__ у Питхон-у

У Питхон-у, речник је ан неуређен скуп вредности података то би могло бити користи се за чување вредности података слично карти. За разлику од других типова података, који могу да садрже само једну вредност по елементу, речници такође могу да садрже а кључ: вредност пар. Да направим речник ефикаснији , нуди се кључ/вредност.

Када се односи на приступ атрибуту, тачка '.' (као у к.ани_аттрибуте ) је све што је већини корисника познато. Једноставно речено, приступ атрибутима је процес добијања објекта који је повезан са оним који већ имате . Некоме ко користи Питхон може изгледати веома једноставно, а да не иде предалеко у специфичности. Међутим, много тога се дешава иза кулиса за овај релативно једноставан процес.

Шта је _дицт_?

Сваки модул има јединствено својство тзв __дицт__. Овај речник садржи табелу симбола за модул . Карактеристике ставке (које се могу писати) се чувају у речнику или другом објекту за мапирање.

Једноставно речено, сваки објекат у Питхон-у има а својство које је означено симболом __дицт__ . Штавише, овај објекат има сва својства која су наведена за њега. Друго име за __дицт__ је маппингпроки објекат. Можемо користити речник преко применом својства __дицт__ објекту класе.

Синтакса:

 object.__dict__ 

Пример:

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

Излаз:

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

Пример 2:

Овај пример ће показати да помоћу __дицт__ атрибут , може се направити речник од било ког објекта :

 # 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__) 

Излаз:

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

Пример 3:

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

Излаз:

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

Коришћење речника без употребе __дицт__ у Питхон-у:

Прављење речника:

У Питхон-у, речник се може направити тако што ћете приложити а списак уноса унутар витичастих заграда и одвајајући их зарезом . Речник чува парове вредности, где је један елемент пара кључ, а други његов Кључ: вредност . Насупрот кључеви, која не могу се поновити и морају бити непроменљиве, вредности у речницима може бити било које врсте података и може се дуплирати .

Елементи су одвојене зарезима , сваки кључ се разликује од његове вредности двотачком (:), а цела структура је садржана у витичасте заграде . Речник који је потпуно лишен свих речи написан је на следећи начин: {} .

Кључеви речника морају бити непроменљиво , као такав цели бројеви, тупле или стрингови , иако вредности могу бити било које врсте. У Питхон речницима, исто име кључа написано другачије се сматра као посебан кључ. Имајте то на уму тастери речника разликују велика и мала слова ; кључеви са сличним именом, али различитим великим и малим словима ће се руковати другачије.

Пример:

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

Излаз:

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

Тхе уграђени метод дицт() такође омогућава за стварање речника . Једноставно речено две витичасте заграде {} заједно ће резултирати празан речник .

Пример:

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

Излаз:

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

Сложености за прављење речника:

  • Временска сложеност: О (дужина (дикт))
  • Сложеност простора: На)

Угнежђени речници:

То је облик речника где један или више од једног кеис има приложен речник као вредност од кључа.

фонтсизе латек

Пример:

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

Излаз:

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

Додавање елемената у речник:

Постоје неколико метода за додавање елемената у Питхон речник. Навођењем вредности и кључа заједно, нпр. Дицт[Кеи] = 'Вредност', једна по једна вредност се може додати у речник. Помоћу уграђена функција упдате(). , може се модификовати постојећа вредност у речнику. Постојећи речник се такође може проширити помоћу угнежђене вредности кључа .

Напомена: Приликом додавања вредности, вредност се ажурира ако комбинација кључ/вредност већ постоји. Ако није, нови кључ и вредност се додају у речник.

Пример:

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

Излаз:

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

Сложености за додавање елемената у речник:

  • Временска сложеност: О(1)/О(н)
  • Сложеност простора: О(1)

Приступ елементима речника:

Речник користи кључеви , док други типови података захтевају индексирање за преузимање вредности. Кључеви се могу користити са гет() функција или унутар угластих заграда [].

У случају да А кључ се не може пронаћи у речнику, КеиЕррор се производи ако користимо угласте заграде []. С друге стране, ако се кључ не може пронаћи, гет() функција враћа Ништа.

Пример:

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

Излаз:

 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 

Сложености за приступ елементима у речнику:

  • Временска сложеност: О(1)
  • Сложеност простора: О(1)

Приступ елементу угнежђеног речника:

Можемо узети помоћ од техника индексирања []. да бисте добили вредност постојећег кључа у угнежђени речник .

Пример:

 # 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.']) 

Излаз:

 {3: 'JavatPoint'} JavatPoint Website 

Методе уграђеног речника:

јасно() :

Функција дицт.цлеар() елиминише сваки пар кључ-вредност из речника.

цопи() :

А плићи примерак речника се враћа методом дицт.цопи().

фромкеис():

Коришћење испорученог итерабле (стринг, листа, сет или тупле) као кључеви и наведена вредност, функција дицт.фромкеис() прави нови речник .

добити() :

Ово даје придружену вредност са датим кључем.

ставке() :

А објекат приказа речника , који нуди динамичку презентацију ставки речника као листу парова кључ-вредност се враћа помоћу функције дицт.итемс(). Када се речник ажурира, ово Виев објекат је такође ажуриран .

дицт.кеис() :

Функција дицт.кеис() враћа објекат приказа речника са речником листа кључева.

поп() :

Ово враћа вредност кључа након што га уклоните . Ако кључ недостаје у речнику, он или баца а КеиЕррор или враћа задана вриједност ако је један био обезбеђен.

пиће ():

Ово уклања једну ставку из речника и враћа тупле парова (кључ, вредност). Тхе Последњи ушао, први изашао (ЛИФО) секвенца се користи за повратне парове.

сетдефаулт() :

Ово враћа вредност речника за дати кључ . Ако се кључ не може открити, кључ са испорученим задана вриједност се додаје. То поставља Ниједан као што је задана вриједност ако се не испоручује.

вредности() :

Тхе објекат приказа речника који нуди динамички приказ сваке вредности која је присутан у речнику, се враћа помоћу функције дицт.валуес(). Када се речник ажурира, ово Виев објекат је такође ажуриран .

ажурирање() :

А речник или било који итерабле са паровима кључ/вредност , као што је тупле, може се ажурирати користећи функцију дицт.упдате().

Пример:

 # 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()) 

Излаз:

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

Разликовање између речника и листе:

Структуре података као што су а списак и речник су у основи различити. Ан наручене серије артикала може се чувати у а листа тако да можемо да га индексирамо или да га понављамо. Листе се такође могу мењати чак и након што су већ генерисане пошто су променљивог типа. Тхе Питхон речник је складиште кључ-вредност и имплементација а хасх табле . Не прати никакав посебан низ и захтева кључеве који се могу хеширати. Поред тога, брз је за тражење кључева.

А листе елементи садрже следеће карактеристике:

  • Осим ако нису посебно наручени, они држе свој тренутни поредак (на пример, сортирањем листе).
  • Они могу бити било које врсте, или чак а комбинација врста .
  • Кроз нумеричке индексе (базиране на нули)., можемо им приступити.

Карактеристике речник елементи су следећи:

  • Сваки унос има а вредност и кључ .
  • Наређења су није гарантовано .
  • Кључне вредностисе користе за приступ елементима.Било који тип хеш табеле (осим дицт)могу се користити за вредности кључа, а типови се могу комбиновати.Било која врста вредности, укључујући друге прописе, је дозвољено , а типови се могу комбиновати.

Употреба :

Користимо а речник ако имамо а скуп различитих кључева који одговарају вредностима , али а листа када имамо ан наређена група ствари .

Закључак:

  • На компјутерском језику, речници су нека врста структуре података која се користи за чување информација то је некако повезано.
  • Сваки модул има јединствено својство тзв __дицт__.
  • __дицт__ садржи табелу симбола за модул .
  • Својства елемента се чувају у а објекат мапирања.
  • Сваки објекат у Питхон-у има а својство које је означено симболом __дицт__ .
  • Друго име за __дицт__ такође је познато као маппингпроки објекат.
  • Две компоненте Питхон речника се позивају Кључеви и вредности .
  • ти можда неће примити ваше податке вратите истим редоследом којим сте их унели пошто речници не чувају своје податке у било ком одређеном редоследу.
  • Кључеви ће се састојати од само једна ствар.
  • Вредности могу бити цели бројеви, листе, листе унутар листа , итд.
  • Не може бити више од један унос по кључу (није дозвољен дупликат кључа)
  • Кључеви речника морају бити непроменљиво , као такав цели бројеви, тупле или стрингови , иако вредности могу бити било које врсте.
  • Речник тастери разликују велика и мала слова ; у Питхон речницима, исто име кључа написано другачије се сматра као а различит кључ .