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

时间:2015-03-03 17:25:27

标签: python json list-comprehension

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

我真的没有看到。我的列表理解有什么问题?

1 个答案:

答案 0 :(得分:9)

你的循环错误;它们应该从左到右列在嵌套顺序中:

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

现在region在'外部'循环中设置,以便'内部'循环可以使用它。