2015-03-03 2 views
1

Я пытаюсь создать список, основанный на this JSON:Список переменная понимание ссылка выделена прежде

city_list = [ 
    city 
    for city in metroextractor_cities['regions'][region]['cities'] 
    for region in metroextractor_cities['regions']] 

Python говорит переменную region ссылается прежде, чем назначение:

UnboundLocalError: local variable 'region' referenced before assignment 

Я действительно не вижу что. Что не так с моим пониманием списка?

ответ

9

У вас есть ваши петли неправильным образом; они должны быть перечислены в порядке вложенности , слева направо:

city_list = [ 
    city 
    for region in metroextractor_cities['regions'] 
    for city in metroextractor_cities['regions'][region]['cities']] 

Теперь region устанавливается в «внешней» петли, так что «внутренний» цикл может использовать его.

Смежные вопросы