分配前引用的列表理解变量

List comprehension variable referenced before assigned

我正在尝试根据 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

我真的不明白。我的列表理解有什么问题?

你的循环方式不对;它们应该按嵌套顺序列出,从左到右:

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

现在region设置在'outer'循环中,这样'inner'循环就可以使用了。