循环内的循环无法继续迭代

时间:2017-09-19 14:19:40

标签: python loops

目标:我正在尝试计算所有邮政编码之间的距离,但仅包括25英里或更短距离的邮政编码。

问题:我认为代码应该工作的方式是使用循环拉取邮政编码,然后使用另一个循环拉取另一个邮政编码。问题是,如果zip1 = XXX,它只会抓取以XXX开头的对,并且一旦迭代了所有组合,就无法移动到YYY for zip1。

for line in f_in:
zip1 = line["ZIP"]
lat = line["LAT"]
lon = line["LNG"]
loc = (float(lat),float(lon))
    for entry in b_in:
        zip2 = entry["ZIP"]
        lat2 = entry["LAT"]
        lon2 = entry["LNG"]
        loc2 = (float(lat2),float(lon2))
        combzip = str(zip1)+str(zip2)
        print combzip
        if not ziplist.has_key(combzip):
            dist = haversine.haversine(loc,loc2,miles=True)
            if dist > 20:
                continue
            ziplist[combzip] = [zip1,zip2,dist]

1 个答案:

答案 0 :(得分:0)

不知道你是否注意到了,但要小心缩进

for line in f_in:
    zip1 = line["ZIP"]
    lat = line["LAT"]
    lon = line["LNG"]
    loc = (float(lat),float(lon))
    for entry in b_in:
        zip2 = entry["ZIP"]
        lat2 = entry["LAT"]
        lon2 = entry["LNG"]
        loc2 = (float(lat2),float(lon2))
        combzip = str(zip1)+str(zip2)
        print combzip
        if not ziplist.has_key(combzip):
            dist = haversine.haversine(loc,loc2,miles=True)
            if dist > 20:
                continue
            ziplist[combzip] = [zip1,zip2,dist]