【问题标题】:Need to modify the below data structure to have it sorted需要修改以下数据结构才能对其进行排序
【发布时间】:2020-07-17 07:08:53
【问题描述】:

需要关于如何根据“流行度”对以下数据结构进行排序的建议?

Data_structure={0:{name:"xxx",popularity:100},1:{name:"yyy", popularity:90}}

【问题讨论】:

标签: python sorting dictionary


【解决方案1】:

sorted python 中的内置函数接受 key 需要函数的参数。所以基本上,你可以这样做:

data = {0: {"name": "xxx", "popularity": 100},1: {"name":"yyy", "popularity":90}}
data = dict(sorted(data.items(), key=lambda t: t[1]["popularity"]))

【讨论】:

【解决方案2】:

使用OrderedDict 覆盖 Python 2.x 和 Python 3.x

from collections import OrderedDict
data = {0: {"name": "xxx", "popularity": 100}, 1: {"name":"yyy", "popularity":90}}

ordered_data = OrderedDict(sorted(data.items(), key=lambda i: i[1]['popularity']))
print(ordered_data)

输出

OrderedDict([(1, {'popularity': 90, 'name': 'yyy'}), (0, {'popularity': 100, 'name': 'xxx'})])

【讨论】:

  • 您只需复制/粘贴我的答案,添加一个 OrderedDict(对 py3.6+ 无用)并声明它是您的吗?
  • 放心,先生,我没有复制您的答案,您的答案专门针对 Python 3.x,而我的答案涵盖 Python 2.x 和 3.x。欢呼
猜你喜欢
  • 2014-11-28
  • 1970-01-01
  • 1970-01-01
  • 2019-07-05
  • 2016-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-29
相关资源
最近更新 更多