Saltar al contenido

¿Qué es un diccionario en Python?

El diccionario es otro tipo de datos en Python.

Los diccionarios son colecciones de elementos que tienen una “clave” y un “valor”.

Los diccionarios de Python también se conocen como matrices asociativas o tablas hash.

Son como listas, excepto que en lugar de tener un número de índice asignado,
tú haces el índice.

Los diccionarios están desordenados, por lo que el orden en que se agregan las claves no
reflejan necesariamente el orden en el que se pueden informar.

Utilice {} llaves para construir el diccionario.

Busque el valor asociado con una clave usando []

Proporcione una clave y un valor.

Se colocan dos puntos entre la clave y el valor (clave: valor)

Cada clave debe ser única y cada clave puede estar en el diccionario solo una vez.

¿Cómo crear un diccionario?

Para crear un diccionario, proporcione la clave y el valor y asegúrese de que cada par esté separado por una coma

# This is a list
mylist = ["first","second","third"]

# This is a dictionary
mydictionary = {0:"first",1:"second",2:"third"} 

Creemos algunos diccionarios aleatorios:

# Empty declaration + assignment of key-value pair
emptyDict = {}
emptyDict['key4']=’value4?

# Create a three items dictionary
x = {"one":1,"two":2,"three":3}

#The name of the dictionary can be anything you like
dict1 = {'abc': 456};
dict2 = {'abc':123,98.6:37};

Acceder / Obtener valores

Para acceder a los elementos del diccionario, puede utilizar los corchetes junto con la clave
para obtener su valor.

data = {'Name':'Zara','Age':7,'Class':'First'};

# Get all keys
data.keys()

# Get all values
data.values()

# Print key1
print data['Name']

# Prints 7
print data['Age']

# Prints name and age
print 'Name', data['Name'];
print 'Age', data['Age'];

Recorrer un diccionario

Un bucle for en un diccionario itera sobre sus claves de forma predeterminada.

Las claves aparecerán en un orden arbitrario.

Entrenamiento de Python recomendado

Para el entrenamiento de Python, nuestra principal recomendación es DataCamp.

Los métodos dict.keys () y dict.values ​​() devuelven listas de claves o valores
explícitamente.

También hay un elemento () que devuelve una lista de tuplas (clave, valor), que es el
forma más eficiente de examinar todos los datos de valor clave en el diccionario.

Todas estas listas se pueden pasar a la función sorted ().

Sintaxis básica para recorrer diccionarios (claves y valores)
para introducir datos:
imprimir datos[key]

Supongamos que tiene un diccionario llamado “datos”.

data = {
        'key1': 'value1',
        'key2': 'value2',
        'key3': 'value3'
        }

for key, value in data.items():
    print key,value

Looping their values directory (not in order)
for value in data.values():
    print value

Actualizar un diccionario

Crea una nueva entrada si la clave aún no está en el diccionario.

Sobrescribe el valor anterior si la clave ya está presente.

Puede actualizar un diccionario mediante:

agregar una nueva entrada o elemento (es decir, un par clave-valor)

modificar una entrada existente

eliminar una entrada existente

Veamos cómo funciona eso:

data = {'Name':'Zara','Age':7,'Class':'First'};

data['Age'] = 8;                    # update existing entry
data['School'] = "DPS School";      # Add new entry

print "data['Age']: ", data['Age'];
print "data['School']: ", data['School'];

Tomemos un ejemplo más:

birthday = {}
birthday['Darwin'] = 1809
birthday['Newton'] = 1942  # oops
birthday['Newton'] = 1642
print birthday

Eliminar una clave / valor

El operador “del” hace eliminaciones.

En el caso más simple, puede eliminar la definición de una variable, como si esa variable
no había sido definido.

Del también se puede usar en elementos de lista o porciones para eliminar esa parte de la lista y para
eliminar entradas de un diccionario.

data = {'a':1,'b':2,'c':3}
del dict['b']   ## Delete 'b' entry
print dict      ## {'a':1, 'c':3}

Ejemplo de Google Class

Veamos este ejemplo de https://developers.google.com/edu/python/dict-files

## Can build up a dict by starting with the the empty dict {}
## and storing key/value pairs into the dict like this:
## dict[key] = value-for-that-key

dict = {}
dict['a'] = 'alpha'
dict['g'] = 'gamma'
dict['o'] = 'omega'

print dict          ## {'a': 'alpha', 'o': 'omega', 'g': 'gamma'}

print dict['a']     ## Simple lookup, returns 'alpha'

dict['a'] = 6       ## Put new key/value into dict

'a' in dict         ## True

## print dict['z']                  ## Throws KeyError

if 'z' in dict: print dict['z']     ## Avoid KeyError
print dict.get('z')                 ## None (instead of KeyError)

Un bucle for en un diccionario itera sobre sus claves de forma predeterminada.

Las claves aparecerán en un orden arbitrario.

Los métodos dict.keys () y dict.values ​​() devuelven listas de claves o valores
explícitamente.

También hay un elemento () que devuelve una lista de tuplas (clave, valor), que es el
forma más eficiente de examinar todos los datos de valor clave en el diccionario.

Todas estas listas se pueden pasar a la función sorted ().

## Note that the keys are in a random order.
for key in dict: print key
## prints a g o
  
## Exactly the same as above
for key in dict.keys(): print key

## Get the .keys() list:
print dict.keys()  ## ['a', 'o', 'g']

## Likewise, there's a .values() list of values
print dict.values()  ## ['alpha', 'omega', 'gamma']

## Common case -- loop over the keys in sorted order,
## accessing each key/value
for key in sorted(dict.keys()):
    print key, dict[key]
  
## .items() is the dict expressed as (key, value) tuples
print dict.items()  ##  [('a', 'alpha'), ('o', 'omega'), ('g', 'gamma')]

## This loop syntax accesses the whole dict by looping
## over the .items() tuple list, accessing one (key, value)
## pair on each iteration.
for k, v in dict.items(): print k, '>', v
## a > alpha    o > omega     g > gamma

Formato de dictado

El operador% funciona convenientemente para sustituir valores de un dictado en una cadena por su nombre

hash = {}
hash['word'] = 'garfield'
hash['count'] = 42
s="I want %(count)d copies of %(word)s" % hash  # %d for int, %s for string

# Will give you:
>> 'I want 42 copies of garfield'

Operaciones de diccionario comunes


# create an empty dictionary
x = {}
 
# create a three items dictionary
x = {"one":1, "two":2, "three":3}
 
# get a list of all the keys
x.keys()
 
# get a list of all the values
x.values()
 
# add an entry
x["four"]=4
 
# change an entry
x["one"] = "uno"
 
# delete an entry
del x["four"]
 
# make a copy
y = x.copy()
 
# remove all items
x.clear()
 
#number of items
z = len(x)
 
# test if has key
z = x.has_key("one")
 
# looping over keys
for item in x.keys(): print item
 
# looping over values
for item in x.values(): print item
 
# using the if statement to get the values
if "one" in x:
    print x['one']
 
if "two" not in x:
    print "Two not found"
 
if "three" in x:
    del x['three']
Fuentes

https://developers.google.com/edu/python/dict-files
http://docs.python.org/2/tutorial/datastructures.html
http://software-carpentry.org/3_0/py04.html
http://yuji.wordpress.com
http://www.tutorialspoint.com/python/python_dictionary.htm

Entrenamiento de Python recomendado

Para el entrenamiento de Python, nuestra principal recomendación es DataCamp.