2011-06-04 34 views
5

La clase Item tiene un texto de función miembro() que devuelve una lista de cadenas. El diccionario de clase tiene elementos de función miembro() que devuelve una lista de elementos. dict es una instancia de Diccionario. Quiero probar si todos los caracteres en todas las cadenas en todos los elementos en dict son ASCII. ProbéPython, comprensión de la lista iterada

all(ord(ch) < 128 for ch in s for s in item.text() for item in dict.items()) 

Esto da el mensaje de error "nombre global 's' no está definido". ¿Cuál es la forma correcta?

Respuesta

5

El orden de las cláusulas for tiene que ser al revés. El ciclo más interno es el último, el ciclo más externo es el primero.

all(ord(ch) < 128 for item in dict.items() for s in item.text() for ch in s) 
Cuestiones relacionadas