Esta es solo una pregunta trivial sobre qué convención sugieres. Recientemente, he visto muchos ejemplos de personas escribiendo dict(key1=val1, key2=val2)
en lugar de lo que creo que es el más idiomático {"key1": val1, "key2": val2}
. Creo que la razón es evitar el uso de ""
para las claves, pero no estoy seguro. ¿Tal vez la sintaxis dict()
se parece más a otros idiomas?¿Debo escribir dict o {} en Python al construir un diccionario con claves de cadena?
Respuesta
Voy a ir contra la corriente aquí:
utilizar el método de dict()
si te conviene, pero mantener las limitaciones señaladas en otras respuestas en mente. Hay algunas ventajas de este método:
- se ve menos desordenada en algunas circunstancias
- Es 3 caracteres menos por par clave-valor
- En las disposiciones de teclado, donde
{
y}
son torpes para escribir (AltGr- 7 y AltGr-0 aquí) es más rápido escribir
Obviamente no hay una respuesta correcta aquí, pero me gusta la tuya mejor.Creo que SO tiene una desafortunada tendencia a votar automáticamente los comentarios de los usuarios con mayor reputación. – Gurgeh
Definitivamente, utilizar {}, mantenga simple código & tipo menos es siempre mi objetivo
Bueno, aquí no puedes tener ambas cosas. Para dos o más teclas, el método 'dict()' significará menos tipeo: dos comillas y un carácter de espacio menos por par de clave-valor, si sigue las recomendaciones PEP8. –
{"key1": val1, "key2": val2}
es más idiomática; Casi nunca me encuentro con dict
con argumentos de palabra clave y ciertamente nunca he tenido la tentación de escribirlo. También es más general, porque los argumentos de palabras clave tienen que ser identificadores Python:
>>> {"foo bar": 1}
{'foo bar': 1}
>>> dict(foo bar=1)
------------------------------------------------------------
File "<ipython console>", line 1
dict(foo bar=1)
^
SyntaxError: invalid syntax
>>> dict("foo bar"=1)
------------------------------------------------------------
File "<ipython console>", line 1
SyntaxError: keyword can't be an expression (<ipython console>, line 1)
Hay casos en que Python usa palabras donde otros idiomas usan signos de puntuación. Produce menos ruido de línea. 'dict()' podría ser más legible cuando se puede usar (Obviamente no se puede usar si las claves no son identificadores de Python válidos, en ese caso no hay duda de qué usar). – jfs
Existe cierta ambigüedad con las llaves {}. Considere:
>>> x = {'one','two','three'}
>>> type(x)
<type 'set'>
>>> x = {}
>>> type(x)
<type 'dict'>
Mientras que no hay ambigüedad con el uso de set()
o dict()
.
Buen punto, pero esto es muy poco importante si tenemos en cuenta los otros puntos que se han hecho. – jamylak
- 1. Python: dict postal con claves
- 2. Python: ordenar este diccionario (dict en dict)
- 3. Usando DictWriter escribir un subconjunto de claves de un diccionario
- 4. Variables de Python como claves para dict
- 5. Python: encontrar claves con valores únicos en un diccionario?
- 6. inserte o actualice las claves en un diccionario python
- 7. ¿Enumerar claves en un diccionario?
- 8. Clasificar claves del diccionario en python
- 9. Accediendo a python dict con cadena de búsqueda de claves múltiples
- 10. crear diccionario con claves duplicadas en python
- 11. Diccionario de Python con variables como claves
- 12. Nombrar claves dict para una búsqueda rápida en python
- 13. función autocompletar-like con un dict python
- 14. actualizar un diccionario con parte de otro dict
- 15. Creando un nuevo dict en Python
- 16. Cadena de diccionario en Python
- 17. Python - intersección entre una lista y claves de un diccionario
- 18. Diccionario con claves en Unicode
- 19. ¿Cómo construir un default de un diccionario?
- 20. Imprimir un subconjunto particular de claves en un diccionario
- 21. ¿Alternativa al diccionario con claves enum?
- 22. Eliminar ciertas claves de un diccionario en Python
- 23. diccionario en Python con la orden que establece al inicio
- 24. ¿Cómo puedo combinar diccionarios con las mismas claves en python?
- 25. Agregue claves/valores al diccionario en la declaración
- 26. Python: cómo construir un diccionario de la lista llanura de claves y valores
- 27. Python: ¿la mejor forma de intercambiar claves con valores en un diccionario?
- 28. Unidad: Construir un diccionario
- 29. ¿Cómo inicializar un dict con claves de una lista y un valor vacío en Python?
- 30. C# Cadena reemplazar con diccionario
no es genial, hay más de una manera obvia de hacerlo – wim
Una ventaja obvia de la versión '{}' es que si luego decides usar algunas teclas que no sean cadenas, no tienes que volver a escribir toda la linea – James
Para estar seguro, siempre puedes combinar los dos: una especie de enfoque de "cinturón y abrazaderas": '' kwargs = {"key1": "val1", "key2": "val2"}; d = dict (** kwargs) ''. – Blair