【发布时间】:2013-08-05 22:48:54
【问题描述】:
样本数据 (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 循环(我还没有学过字典及以上)来为 Towers 本身设置第一个 for 循环,然后为 Towers 设置第二个 for 循环除了在第一个循环中选择的塔之外的所有塔。虽然仅使用文件lat.py 中的以下公式,但我有(无法编辑)即。我的代码中的一行必须阅读
lat.distance_from_lat_long( lat1, long1, lat2, long2 )
因此,我需要从第一个 for 循环中获取 lat1 和 long1,它们将保持不变,直到它们在第二个 for 循环中读取每个其他塔的 lat2 和 long2,然后第二个塔进入第一个 for 循环,依此类推,这会给我两座塔之间的距离。
如果从嵌套的 for 循环中,lr[3] 的最小值小于 2 个塔的距离,则塔可以工作 (count=+1),然后在第一个 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])
【问题讨论】:
-
对于您的新代码,“太糟糕了”是什么意思?您希望它做什么,它会做什么?
-
在说明中我写了一段关于我想要代码做什么的段落。
-
你对你想要做什么的解释比泥巴清楚一点,但不是很多。您需要修改问题以更清楚地解释您所追求的。我的答案计算了您列表中每对塔之间的距离,这似乎是您所追求的。但是你已经规定计算每对塔之间的距离不是你想要的(因为你要求我删除我的答案),所以你必须非常努力地重申你想要的。
-
用我的 towers1.txt 列表,说它 =f,我需要取第一个塔的 f[0][1] 和 f[0][2] 并使用 (lat1 ,long1,lat2,long2) 和下面的列表 f[x][1], f[x][2] 然后取 f[1][1] f[1][2],其余的列表等
-
我发布了另一个简化的问题@jonathanleffler
标签: python loops for-loop while-loop enumerate