永发信息网

【降序】想问下python字典排序怎么才能先按照值大小降序排列若值相同再...

答案:2  悬赏:0  手机版
解决时间 2021-02-28 01:07
  • 提问者网友:斑駁影
  • 2021-02-27 17:25
【降序】想问下python字典排序怎么才能先按照值大小降序排列若值相同再...
最佳答案
  • 五星知识达人网友:一把行者刀
  • 2021-02-27 17:43
【答案】 暂时只能想到这样的,结果是排序后的键列表.
  d = {'a':3,'c':4,'b':3,'d':2,'f':4,'e':2}
  result = []
  keys = sorted(d,key=lambda k:d[k])
  for k in keys:
  if not result:
  result.append(k)
  elif d[k] == d[result[-1]] and k 追问: 谢谢楼上 不过当值相同的元素很多的时候好像不行吧 因为每次都只比较了result里面的最后一位 追答: 好像有这个风险。下面用了一种丑陋的做法。 d = {'x': 3, 'c': 4, 'b': 3, 'd': 2, 'f': 4, 'e': 2, 'k': 3} temp = {} for k, v in d.items(): if unicode(v) not in temp: temp[unicode(v)] = [v, k] continue temp[unicode(v)].append(k) keys = sorted(temp, key=lambda k: temp[k][0]) data = [] for k in keys: data.extend(sorted(temp[k][1:])) print data
全部回答
  • 1楼网友:蕴藏春秋
  • 2021-02-27 18:27
好好学习下
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯