[英]Pythonic way to sort array of string by an associated number
需要按其关联的浮点速度对 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 []
sorted
内置函数接受一个key=
参数。 您可以使用它来提供一个函数,该函数将返回比较键(在本例中为速度),如下所示:
def getSpeed(host):
... as you had it
return speed
hosts = ['h1', 'h2', 'h3']
ordered_hosts = sorted(hosts, key=getSpeed)
您可以使用sort
或sorted
的key
参数来设置sorted
前调用的函数。 在您的情况下, sorted(hosts, key=getSpeed)
应该足够了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.