带有列表的字典-根据关键字选择最佳

时间:2018-08-08 17:33:22

标签: python list dictionary

我有一本带有列表的字典,像这样在第一行中标题:

book = [{'A':1,'B':2,'C':3},{'A':4,'B':5,'C':6},{'A':5,'B':5,'C':7}]

在这种情况下,哪种方法是最好的选择键(例如'B')并打印最高列表的方法,

[{'A':4,

  'B':5,

  'C':6}

 {'A':5,

  'B':5,

  'C':7}]

我尝试过但没有成功

besties=[book[0]]
col='B'

for i in range(len(book)):
    for j in range(len(book)-i-1):
        if i[j][col]>besties[i][col]:
            besties.append(book[i])
    print(besties)

2 个答案:

答案 0 :(得分:0)

您只需做一次就可以

best = max(book, key=lambda x: x['B'])

不幸的是,max不会返回所有事件,因此您必须第二次遍历该字典

best_B = best['B']
all_best = [book for book in books if book['B']==best_B]

答案 1 :(得分:0)

我可以想到3种方法:

  1. 找到该键的最大值,然后找到具有该最大键的每个元素
  2. 基于该键对数组进行排序,并获得具有相同值的最新元素
  3. 将每个元素添加到library(ggplot2) library(rlang) color_plot <- function(df, ...) { color_by = quos(...) ggplot(df) + aes(x=x, y=y, col=paste(!!!color_by)) + geom_point() } color_plot(df, cat1, cat2, cat3) 数组中,如果发现该键的值更大,则将其清空。

这取决于您随后要处理的信息,还是以后是否需要对其进行自定义,或者数据的大小。

例如,最容易实现的是第一个。

result