2011-08-19 8 views
9

¿Existe una forma abreviada de buscar claves en un diccionario?Múltiples operadores 'in' en Python?

Algo que puedo utilizar en lugar de utilizar múltiples in y and operadores - en lugar de lo siguiente:

('somekey' in d) and ('someotherkey' in d) and ('somekeyggg' in d) 
+0

Qué hay de malo en esto? Se ve muy claro y elegante. –

+0

Se pone molesto si tiene que hacerlo para 8 o 9 teclas. –

+0

Luego considera mostrar eso como el ejemplo. La versión de tres teclas no está mal, y no demuestra ningún problema real. –

Respuesta

24
all(word in d for word in [ 'somekey', 'someotherkey', 'somekeyggg' ]) 
+1

+1 La lista se puede crear de antemano y tal vez incluso reutilizar. –

+3

@Gareth: ¿por qué agregaste esa división? – recursive

+1

@reno siento elegir nits, pero creo que sería un [generador] (http://www.python.org/dev/peps/pep-0289/) [expresión] (http: //docs.python. org/reference/expressions.html # generator-expressions). – Marty

5
set(['somekey', 'someotherkey', 'somekeyggg']).issubset(d) 
Cuestiones relacionadas