Python, повторное понимание списка - PullRequest
5 голосов
/ 04 июня 2011

Класс Item имеет функцию-член text (), которая возвращает список строк. Класс Dictionary имеет функцию-член items (), которая возвращает список предметов. dict является экземпляром словаря. Я хочу проверить, все ли символы во всех строках во всех элементах dict являются ASCII. Я пытался

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

Это дает сообщение об ошибке «глобальное имя не определено». Какой правильный путь?

1 Ответ

5 голосов
/ 04 июня 2011

Порядок предложений for должен быть наоборот. Самый внутренний цикл - последним, самый внешний - первым.

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