需要按其关联的浮动速度
对HOST字符串数组进行排序有没有很好的方法从排序的元组中获取数组? 我可以消除有序数组吗?
#!/usr/bin/env python
def getSpeed(url):
if url == 'h1':
return 0.522611856461
elif url == 'h2':
return 0.438368797302
elif url == 'h3':
return 0.443703174591
def orderHosts():
hostInfo = []
ordered = []
hosts = ['h1', 'h2', 'h3']
for host in hosts:
hostInfo.append( (host, getSpeed(host)) )
print hostInfo
return ordered
if __name__ == "__main__":
print("orderedHosts {}".format(orderHosts()))
输出:
[('h1', 0.522611856461), ('h2', 0.438368797302), ('h3', 0.443703174591)]
orderedHosts []
答案 0 :(得分:1)
sorted
内置函数采用key=
参数。您可以使用它来提供一个函数来返回比较键(在这种情况下,速度),如下所示:
def getSpeed(host):
... as you had it
return speed
hosts = ['h1', 'h2', 'h3']
ordered_hosts = sorted(hosts, key=getSpeed)
答案 1 :(得分:1)
您可以使用key
或sort
的{{1}}参数来设置排序前调用的函数。在您的情况下,sorted
就足够了。