Quiero construir un diccionario en Python. Sin embargo, todos los ejemplos que veo son crear instancias de un diccionario de una lista, etc. ..Creando un nuevo dict en Python
¿Cómo creo un nuevo diccionario vacío en Python?
Quiero construir un diccionario en Python. Sin embargo, todos los ejemplos que veo son crear instancias de un diccionario de una lista, etc. ..Creando un nuevo dict en Python
¿Cómo creo un nuevo diccionario vacío en Python?
llamada dict
sin parámetros
new_dict = dict()
o simplemente escribir
new_dict = {}
Usted puede hacer esto
x = {}
x['a'] = 1
+1 para la siguiente pregunta lógica sobre cómo agregarle un nuevo elemento –
d = dict()
o
d = {}
o
import types
d = types.DictType.__new__(types.DictType,(), {})
Saber cómo escribir un diccionario predefinido es útil saber así:
cmap = {'US':'USA','GB':'Great Britain'}
def cxlate(country):
try:
ret = cmap[country]
except:
ret = '?'
return ret
present = 'US' # this one is in the dict
missing = 'RU' # this one is not
print cxlate(present) # == USA
print cxlate(missing) # == ?
# or, much more simply as suggested below:
print cmap.get(present,'?') # == USA
print cmap.get(missing,'?') # == ?
# with country codes, you might prefer to return the original on failure:
print cmap.get(present,present) # == USA
print cmap.get(missing,missing) # == RU
¡Buen punto! Pero creo que el bit con 'cxlate' hace que tu respuesta parezca demasiado complicada. Solo mantendría la parte de inicialización. ('cxlate' en sí mismo es demasiado complicado. Podría simplemente' devolver cmap.get (país, '?') '.) –
Considere usar https://docs.python.org/2/library/collections.html#collections. defaultdict en lugar de escribir una función de traducción o usar .get() en todas partes. – Sparr
Quizás lo haría, excepto que la documentación es absolutamente opaca para mí, es terrible. No tengo idea de lo que me dicen que haga o por qué debería hacerlo. Y .get() parece hacer exactamente lo correcto, además es extremadamente flexible. Estoy seguro de que es una falta de comprensión de mi parte. Con eso en mente, mis preguntas son: ¿por qué molestarse? ¿Qué se guarda aquí, más fácil aquí, más rápido aquí, etc.? Beneficio es exactamente lo que? – fyngyrz
>>> dict(a=2,b=4)
{'a': 2, 'b': 4}
se sumará el valor en el diccionario de Python.
¿Hay alguna diferencia entre dict() y {}? ¿O la gente simplemente prefiere uno sobre el otro? – Matt
@ Matt Aparentemente, CPython 2.7 dict() es más lento (¿6 veces más lento?), Consulte: http://doughellmann.com/2012/11/the-performance-impact-of-using-dict-instead-of-in- cpython-2-7-2.html En cualquier caso, estoy empezando a preferir la sintaxis del constructor de todos modos, ya que me resulta más fácil escribir y mover código entre los dicts y las llamadas a funciones. –
@DavidWheaton ¡Gracias por señalar esto! Personalmente, encuentro 'new_dict = dict()' un poco más legible, sin embargo, si hay una gran diferencia en cuanto a rendimiento ... ¡Sería bueno para el rendimiento! ;) (Para aquellos que están confundidos acerca de Python y Cphython ver: [aquí] (http://stackoverflow.com/a/17130986/4773274)) – holzkohlengrill