¿Hay una forma de hacer esto a continuación?Python del si en el diccionario en una línea
myDict = {}
if 'key' in myDic:
del myDic['key']
gracias
¿Hay una forma de hacer esto a continuación?Python del si en el diccionario en una línea
myDict = {}
if 'key' in myDic:
del myDic['key']
gracias
Puede escribir
myDict.pop(key, None)
gracias, exactamente lo que quería – scruffyDog
Solo debe eliminarlo si 'clave' está en myDic (que es diferente a myDict) –
@MichelKeijzers: ¿De verdad crees que no es un error tipográfico? –
¿Se considera esto un chiste:
>>> d={1:2}
>>> if 1 in d: del d[1]
...
>>> d
{}
No. No lo haría. –
no se preocupe, vaya con la opción pop (clave, Ninguno) luego. –
No lo llamo una sola línea porque son dos líneas, simplemente metidas en una en una forma no permitida por [PEP 8] (http://www.python.org/dev/peps/pep-0008/). Otras dos razones por las que nunca lo haría de esta manera son (a) no es tan corto y bonito; (b) requiere mencionar el nombre del diccionario y la clave dos veces cada uno en vez de una vez. Los mismos argumentos se aplican con 'd [k] si k en d else v' contra' d.get (k, v) '. –
Además del método pop
uno siempre puede explicitamente llamar al método __delitem__
- que hace lo mismo que del
, pero se hace una s expresión en lugar de como una declaración. Dado que es una expresión, se puede combinar con la línea "si" (versión de Python del operador ternario C):
d = {1:2}
d.__delitem__(1) if 1 in d else None
primero que hay que hacer con este tipo de preguntas: 'leer los documentos dict' por completo. –
@ user683111: debe aceptar la respuesta, si le funcionó :) – avasal
posible duplicado de [¿Cómo eliminar una clave del diccionario?] (Http://stackoverflow.com/questions/11277432/how-to-remove- a-key-from-dictionary) – strongMA