我有一段代码
resultDict = {}
for startCity in places:
for endCity in places:
startLocation = startCity[0] + ' ' + startCity[1]
endLocation = endCity[0] + ' ' + endCity[1]
resultLocations = [startLocation, endLocation]
resultId = ','.join(resultLocations.sort())
if startLocation == endLocation or resultId in resultDict:
continue
dlat = math.radians(float(startCity[2])-float(endCity[2]))
dlon = math.radians(float(startCity[3])-float(endCity[3]))
a = math.sin(dlat/2) * math.sin(dlat/2) + math.cos(math.radians(float(endCity[2]))) \
* math.cos(math.radians(float(startCity[2]))) * math.sin(dlon/2) * math.sin(dlon/2)
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))
d = radius * c
resultDict[resultId] = d * 0.621371
print resultDict
当使用print
语句时,会在屏幕上生成以下内容:
(0.0, (['Millersville CA'], ['Millersville CA']), 0.0)
(1626.614065545485, (['Millersville CA'], ['Millersville IL']), 1616.3457942569537)
(1789.8845362720158, (['Millersville CA'], ['Millersville IN']), 1778.7968284940225)
(2295.8829666956335, (['Millersville CA'], ['Millersville MD']), 2281.198586905769)
(1595.039113682296, (['Millersville CA'], ['Millersville MO']), 1584.3029694701652)
(2082.089905489436, (['Millersville CA'], ['Millersville NC']), 2068.1505623183266)
(1937.855421683643, (['Millersville CA'], ['Millersville OH']), 1927.2582650063941)
(2304.425345768765, (['Millersville CA'], ['Millersville PA']), 2290.4979215838316)
(1771.801667686284, (['Millersville CA'], ['Millersville TN']), 1759.8880673544743)
(2106.8263361464506, (['Millersville CA'], ['Millersville WV']), 2093.504423623986)
(1838.7000061834806, (['Millersville CA'], ['Millersville MI']), 1832.9430747114486)
(1626.614065545485, (['Millersville IL'], ['Millersville CA']), 1616.3457942569537)
(0.0, (['Millersville IL'], ['Millersville IL']), 0.0)
(165.46706149552824, (['Millersville IL'], ['Millersville IN']), 164.45127349792836)
(669.3166714199295, (['Millersville IL'], ['Millersville MD']), 664.8533524270723)
(143.7059918008934, (['Millersville IL'], ['Millersville MO']), 144.75572344683556)
它所做的是计算一组城市之间的距离,然后生成一个以英里为单位的列表,然后是两个城市的名字,然后是毕达哥拉斯定理,两个城市之间的距离作为一种检查。如何格式化print语句以将结果打印出来,如下所示:
我想在屏幕上打印出来,那么如何使用print
并正确格式化它,使列标题成为城市,然后输入正确的英里数呢?你知道吗
我想到的是这样一个代码,它不能完全实现我想要的…它只会吐出第一对城市,然后移动到下一对城市,并在第一对城市下面打印它们:
print "\n\n {0:^}".format(resultDict2),"\n\n{0:^}".format(resultDict3)," {0:^12.5}".format(resultDict4),"\nGC {0:^22.5}".format(resultDict1)
下面是一些打印声明的示例:
Millersville MI
Millersville TN 553.22
GC 549.55
Millersville MI
Millersville WV 434.49
GC 433.64
Millersville MI
Millersville MI 0.0
GC 0.0
有没有办法让代码把下一对城市打印到最后一对城市的右边而不是下面?你知道吗
我很感激你的帮助…我在过去的几天里一直被困在这个问题上,似乎无法让它发挥作用。你知道吗
编辑:
被问及places
…以下是其中的内容:
245939,Millersville,CA,Kern,35.30385,-118.45786,767,2516,Loraine,6,29,-2005993.585,-7850.609146
422981,Millersville,IL,Christian,39.45115,-89.15814,200,656,Owaneco,17,21,582900.2782,239679.282
439235,Millersville,IN,Marion,39.8531,-86.09165,228,748,Indianapolis East,18,97,838665.4307,307491.2101
590805,Millersville,MD,Anne Arundel,39.05955,-76.64802,47,154,Odenton,24,3,1647634.706,343137.5611
722401,Millersville,MO,Cape Girardeau,37.43283,-89.79954,140,459,Millersville,29,31,543086.0153,10195.50234
1021470,Millersville,NC,Alexander,35.85569,-81.18342,293,961,Millersville,37,3,1320855.874,-81032.00324
1048977,Millersville,OH,Sandusky,41.312,-83.28131,212,696,Helena,39,143,1053471.336,497736.4912
1181260,Millersville,PA,Lancaster,39.99788,-76.35413,99,325,Conestoga,42,71,1650717.971,451187.4979
1293977,Millersville,TN,Sumner,36.37116,-86.71,154,505,Goodlettsville,47,165,824583.7325,-86143.9105
1555125,Millersville,WV,Marion,39.4612,-80.14813,330,1083,Fairmont West,54,49,1345239.636,332269.94
1617722,Millersville,MI,Wexford,44.27667,-85.55978,425,1394,Boon,26,165,829275.484,803975.6286
首先我要修复你的数据结构(有点混乱)
其中
calc_distance
返回列表中的两个距离(normal和GC)。就像结果应该是
那么打印出来就更容易了
相关问题 更多 >
编程相关推荐