如何对条目中包含多个数据的列表进行排序?

时间:2016-01-21 18:17:42

标签: python sorting

我有此列表data,需要通过 Hits 订购。

  data = []
  data.append({"url":"google.com", "Hits":5, "Size":7})
  data.append({"url":"microsoft.com", "Hits":30, "Size":0})
  data.append({"url":"abc.com", "Hits":20, "Size":3})

我尝试使用data.sort()sorted(data),但他们没有工作。

2 个答案:

答案 0 :(得分:1)

您可以将key=参数用于.sort()sorted()

data.sort(key=lambda d: d["Hits"])

答案 1 :(得分:1)

作为lambda函数的替代方法,您还可以将itemgetter对象作为sorted的密钥传递,因为itemgetter的实例是可调用的。

>>> from operator import itemgetter
>>> sorted(data, key=itemgetter('Hits'))
[{'url': 'google.com', 'Hits': 5, 'Size': 7}, {'url': 'abc.com', 'Hits': 20, 'Size': 3}, {'url': 'microsoft.com', 'Hits': 30, 'Size': 0}]