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

发布时间:2021-03-24 14:49:46

想问下python字典排序 怎么才能先按照值大小降序排列 若值相同 再按照键的字母顺序排呢? 英语

网友回答

【答案】 暂时只能想到这样的,结果是排序后的键列表.
  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
以上问题属网友观点,不代表本站立场,仅供参考!