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

2024-10-03 00:24:12 发布

您现在位置:Python中文网/ 问答频道 /正文

目标:我试图计算所有邮政编码之间的距离,但只包括那些相距25英里或更少的邮政编码。你知道吗

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

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]

Tags: infordistlinezipfloatxxxlon
1条回答
网友
1楼 · 发布于 2024-10-03 00:24:12

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

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]

相关问题 更多 >