-2

样本数据(towers1.txt):

MS33 42.19 -70.33 3.6
JS89 42.23 -70.30 3.9
ED22 42.25 -70.33 3.4
HE90 42.27 -70.35 3.7
TW05 42.30 -70.30 3.4
WW23 42.37 -70.28 3.7

代码:

lr = []

import lat_long_to_dist
f = open('towers1.txt','r')   
towers = [line.strip('\n') for line in f]
for line in towers:
     lr.append(line.split())

我试图弄清楚如何仅使用 2 个 for 循环(我没有学过字典及以上)来为塔本身设置第一个 for 循环,然后为除第一个中选择的塔之外的所有塔设置第二个 for 循环环形。虽然仅使用我拥有的文件中的以下公式lat.py(无法编辑),即。我的代码中的一行必须阅读

lat.distance_from_lat_long( lat1, long1, lat2, long2 )

因此,我需要从第一个 for 循环中获取 lat1 和 long1,它们将保持不变,直到他们在第二个 for 循环中读取每个其他塔的 lat2 和 long2,然后第二个塔进入第一个 for 循环,依此类推,然后会给我两座塔之间的距离。

如果从嵌套的 for 循环中,一个塔可以工作 (count=+1),则行的 lr[3] 的最小值小于 2 个塔的距离,然后在第一个 for 循环中返回塔的名称,并且它可以与其他塔一起工作,第二个也一样,哪个可以,依此类推。只是有点困惑;想知道是否有人可以提供帮助?

我不确定这是否有帮助,但我已经尝试了几个小时并且无法提出任何建议。这是我现在的代码,这太糟糕了,也许有人可以帮忙?

def Tower_Dist_From_Eachother(t,count):  
    for i in range(count):
        for j in range(count):
            lats = 0
            longs = 0              
            tdist = lat.distance_from_lat_long(lats, longs, float(lr[j][1]), float(lr[j][2]))

def towers(l):
    towname = []
    for i in range(count):
        towname.append(at[i][0])

for i in range(count):
    lats += float(lr[i][1])
    longs += float(lr[i][2])
4

1 回答 1

1

我假设这部分是真正的问题:

因此,我试图弄清楚如何仅使用 2 个 for 循环(我没有学过字典及以上),以便为塔本身设置第一个 for 循环,然后为除第一个循环中选择的塔之外的所有塔设置第二个 for 循环.

所以你想遍历除 之外的所有塔i,对吗?最简单的方法是遍历所有的塔,然后跳过i. 例如:

for i in towers:
    for j in towers:
        if j == i:
            continue
        # do stuff with i and j

或者,等效地:

for i in towers:
    for j in towers:
        if j != i:
            # do stuff with i and j
于 2013-08-05T22:53:40.300 回答