logo

__dict__ en Python

En Python, un diccionario es un conjunto desordenado de valores de datos eso podria ser utilizado para almacenar valores de datos de manera similar a un mapa. A diferencia de otros tipos de datos, que sólo pueden incluir un único valor por elemento, los diccionarios también pueden contener un valor clave par. para hacer el diccionario más eficiente , Se ofrece valor clave.

Cuando se trata de acceso a atributos, el punto '.' (como en x.cualquier_atributo ) es todo lo que la mayoría de los usuarios conocen. Dicho simplemente, El acceso al atributo es el proceso de obtener un objeto que está conectado a uno que ya tiene. . Puede parecer muy simple para alguien que usa Python sin entrar demasiado en detalles. Sin embargo, suceden muchas cosas detrás de escena en este proceso relativamente simple.

¿Qué es _dict_?

Cada módulo tiene una propiedad única llamada __dict__. este diccionario contiene la tabla de símbolos para el módulo . Las características (escribibles) de un elemento se almacenan en un diccionario u otro objeto de mapeo.

En pocas palabras, cada objeto en Python tiene un propiedad que se indica con el símbolo __dict__ . Además, este objeto tiene todas las propiedades que se le han especificado. Otro nombre para __dict__ es proxy de mapeo objeto. Podemos utilizar el diccionario a través de aplicando la propiedad __dict__ a un objeto de clase.

Sintaxis:

 object.__dict__ 

Ejemplo :

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

Producción:

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

Ejemplo 2:

Este ejemplo demostrará que por medio de la atributo __dict__ , se podría crear un diccionario a partir de cualquier objeto:

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

Producción:

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

Ejemplo 3:

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

Producción:

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

Usando Diccionario sin el uso de __dict__ en Python:

Creando un diccionario:

En Python, se puede crear un diccionario encerrando un lista de entradas entre llaves y separándolas con una coma . El diccionario almacena pares de valores, donde un elemento de par es la clave y otro es su Valor clave . En contraste con llaves, cual no se puede repetir y debe ser inmutable, los valores en diccionarios Puede ser de cualquier tipo de datos y puede duplicarse. .

Los elementos son separado por comas , cada clave se distingue de su valor por dos puntos (:), y toda la estructura está contenida en llaves . Un diccionario que está completamente desprovisto de todas las palabras se escribe de la siguiente manera: {} .

Las claves del diccionario deben ser inmutable , como números enteros, tuplas o cadenas , aunque los valores pueden ser de cualquier tipo. En los diccionarios de Python, el mismo nombre de clave escrito de forma diferente se considera una clave distinta. Por favor toma nota que Las claves del diccionario distinguen entre mayúsculas y minúsculas. ; Las claves con nombres similares pero con mayúsculas y minúsculas distintas se manejarán de forma diferente.

Ejemplo :

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

Producción:

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

El método incorporado dict() también permite la creación de diccionarios . En pocas palabras dos llaves {} juntos resultarán en una diccionario vacío .

Ejemplo :

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

Producción:

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

Complejidades para crear un Diccionario:

  • Complejidad del tiempo: O(longitud(dict))
  • Complejidad espacial: En)

Diccionarios anidados:

Es una forma de diccionario donde uno o más de uno Las claves tienen un diccionario adjunto como valor. de la llave.

Ejemplo :

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

Producción:

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

Adición de elementos a un diccionario:

Hay varios métodos para agregar elementos a un diccionario de Python. Al especificar el valor y la clave juntos, por ejemplo, Dict[Clave] = 'Valor', Se puede agregar un valor a un diccionario a la vez. Utilizando el función de actualización incorporada () , se puede modificar un valor existente en un Diccionario. Un diccionario existente también se puede ampliar con valores clave anidados .

Nota: Al agregar un valor, el valor se actualiza si la combinación clave-valor ya existe. De lo contrario, se agregan una nueva clave y valor al diccionario.

Ejemplo :

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

Producción:

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

Complejidades para agregar elementos a un Diccionario:

  • Complejidad del tiempo: O(1)/O(n)
  • Complejidad espacial: O(1)

Accediendo a los elementos del diccionario:

Un diccionario emplea llaves , mientras que otros tipos de datos requieren indexación para recuperar valores. Las claves se pueden utilizar con el función obtener() o dentro de corchetes [].

En el caso de que un no se puede encontrar la clave en el diccionario, Se produce KeyError si usamos corchetes []. Por otro lado, si no se puede localizar la llave, el La función get() devuelve Ninguno.

Ejemplo :

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

Producción:

 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 

Complejidades para acceder a elementos en un Diccionario:

  • Complejidad del tiempo: O(1)
  • Complejidad espacial: O(1)

Accediendo al elemento de un diccionario anidado:

Podemos tomar la ayuda del técnica de indexación [] para obtener el valor de una clave existente en el diccionario anidado .

Ejemplo :

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

Producción:

 {3: 'JavatPoint'} JavatPoint Website 

Métodos de diccionario incorporados:

claro() :

La función dict.clear() elimina cada par clave-valor del diccionario.

Copiar() :

A copia más superficial del diccionario es devuelto por el método dict.copy().

de claves() :

Usando el iterable suministrado (cadena, lista, conjunto o tupla) como claves y el valor especificado, la función dict.fromkeys() crea un nuevo diccionario .

conseguir() :

Este da el valor asociado con la clave dada.

elementos() :

A objeto de vista de diccionario , que ofrece una presentación dinámica de los elementos del diccionario como una lista de pares clave-valor es regresado por la función dict.items(). Cuando se actualiza el diccionario, esto Ver objeto también se actualiza .

dict.claves() :

La función dict.keys() devuelve un objeto de vista de diccionario con el diccionario lista de claves.

estallido() :

Este devuelve el valor de la clave después de eliminarla . Si falta una clave en el diccionario, arroja una Error de clave o devuelve el valor por defecto si se le proporcionó uno.

beber() :

Este elimina un elemento del diccionario y devuelve una tupla de pares (clave, valor). El Último en entrar, primero en salir (LIFO) La secuencia se utiliza para devolver pares.

establecer predeterminado() :

Este devuelve el valor del diccionario para la clave dada . Si no se puede descubrir la clave, la clave con la información suministrada valor por defecto está agregado. Se establece Ninguno como el valor por defecto si no se suministra.

valores() :

El objeto de vista de diccionario que ofrece una vista dinámica de cada valor que es presente en el diccionario, se devuelve por la función dict.values(). Cuando se actualiza el diccionario, esto Ver objeto también se actualiza .

actualizar() :

A diccionario o cualquier iterable con pares clave-valor , como una tupla, se puede actualizar usando la función dict.update().

Ejemplo :

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

Producción:

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

Diferenciar entre un diccionario y una lista:

Estructuras de datos como lista y diccionario son fundamentalmente diferentes. Un serie ordenada de artículos se puede almacenar en un lista para que podamos indexarlo o iterarlo. Las listas también se pueden cambiar incluso después de que ya se hayan generado, ya que son de un tipo modificable. El diccionario de pitón es un almacenamiento de valores clave y una implementación de un tabla de picadillo . No sigue ninguna secuencia particular y requiere claves hash. Además, es rápido para realizar búsquedas clave.

A liza Los elementos contienen las siguientes características:

  • A menos que se reordenen específicamente, mantener su orden actual (por ejemplo, ordenando la lista).
  • Pueden ser de cualquier tipo, o incluso un combinación de tipos .
  • A través de índices numéricos (de base cero), podremos acceder a ellos.

las características de diccionario elementos son los siguientes:

  • Cada entrada tiene un valor y una clave .
  • Los pedidos son no garantizado .
  • Valores claveSe utilizan para acceder a los elementos.Cualquier tipo de tabla hash (que no sea un dict)se puede utilizar para valores clave y los tipos se pueden combinar.cualquier tipo de valor, incluidos otros dictados, esta permitido y los tipos se pueden combinar.

Uso:

Usamos un diccionario si tenemos un conjunto de claves distintas que corresponden a valores , pero un lista cuando tenemos un grupo ordenado de cosas .

Conclusión :

  • En un lenguaje informático, Los diccionarios son una especie de estructura de datos que se utiliza para contener información. eso está de alguna manera relacionado.
  • Cada módulo tiene una propiedad única llamada __dict__.
  • __dict__ contiene la tabla de símbolos para el módulo .
  • Las propiedades de un elemento se almacenan en un objeto de mapeo.
  • Cada objeto en Python tiene un propiedad que se indica con el símbolo __dict__ .
  • Otro nombre para __dict__ también se conoce como objeto de proxy de mapeo.
  • Los dos componentes de un diccionario de Python se llaman Claves y valores .
  • podría no recibir sus datos en el mismo orden en que los ingresó, ya que los diccionarios no mantienen sus datos en ningún orden específico.
  • Las claves consistirán en solo Una cosa.
  • Los valores pueden ser números enteros, listas, listas dentro de listas , etc.
  • No puede haber más que una entrada por clave (no se permiten claves duplicadas)
  • Las claves del diccionario deben ser inmutable , como números enteros, tuplas o cadenas , aunque los valores pueden ser de cualquier tipo.
  • Diccionario Las claves distinguen entre mayúsculas y minúsculas. ; En los diccionarios de Python, el mismo nombre de clave escrito de forma diferente se considera un clave distinta .