求一个算法问题

stephen2017
  • 1
新手上路,请多包涵

[{'a': 10}, {'b': 9}, {'c': 8}]

先比较value大小,然后找出 最大value 的key?
比如 这三个当中最大的是value 是10 找到了然后从而找出 a这个key
如何实现

回复
阅读 905
3 个回答
✓ 已被采纳
a = [{'a': 10}, {'b': 9}, {'c': 8}]
key = list(sorted(a,key = lambda c:-list(c.items())[0][1])[0].keys())[0]
#或者
key = sorted({j[1]:j[0] for i in a for j in i.items()}.items(),key=lambda x:-x[0])[0][1]
num = [{'a': 10}, {'b': 9}, {'c': 8}]
max_value = max(num, key=lambda x:list(x.values())[0])
print(max_value)

其实就是冒泡排序

a = [{'a': 2}, {'b': 9}, {'c': 8}]

max_index = 0
max_val = a[0].values()[0]

for k, v in enumerate(a):
    if v.values()[0] > max_val:
        max_val = v.values()[0]
        max_index = k

print(max_index, a[max_index].keys()[0])

推荐【跃轩】这种函数式解法,但是就不需要转list了

num = [{'a': 10}, {'b': 9}, {'c': 8}]
max_value = max(num, key=lambda x: x.values()[0])
print(max_value)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏