gpt4 book ai didi

python - 按键值过滤字典列表 - 将答案作为字典列表返回

转载 作者:行者123 更新时间:2023-12-01 19:37:08 25 4
gpt4 key购买 nike

我有一个要过滤的词典列表。

[{"Slope": -0.562, "Count": 3},
{"Slope": -0.362, "Count": 6},
{"Slope": -0.762, "Count": 8},
{"Slope": -0.562, "Count": 12},
{"Slope": 2.5, "Count": 34},
{"Slope": 1.52, "Count": 2},
{"Slope": .56, "Count": 6}]

我的目标是获得两个字典的列表。一个具有“最高计数和正斜率”,另一个具有“最高计数和负斜率”。

我的计划是过滤掉所有正面和负面的列表,然后对每个列表进行排序,然后使用每个列表的第一条记录创建一个新列表。

对列表进行排序对我来说不是问题,我已经搞定了!

lines_lst.sort(key=lambda i: i['lines_count'])

但是当我尝试此操作时,过滤似乎不起作用,因为它返回字典。

positive_lines = next(item for item in lines_lst if item["Slope"] > 0)

有人有解决方案吗?

[{"Slope": -0.562, "Count": 12},{"Slope": 2.5, "Count": 34}]

最佳答案

您想要 max 和 min .. 使用它们并应用合适的关键函数 - 事实上,使用元组您只需要 max:

data = [{"Slope": -0.562, "Count": 3},
{"Slope": -0.362, "Count": 6},
{"Slope": -0.762, "Count": 8},
{"Slope": -0.562, "Count": 12},
{"Slope": 2.5, "Count": 34},
{"Slope": 1.52, "Count": 2},
{"Slope": .56, "Count": 6}]

m1 = max(data, key= lambda x: (x["Slope"]>0, x["Count"]))
m2 = max(data, key= lambda x: (x["Slope"]<0, x["Count"]))

result = [m1,m2]

print(result)

输出:

[{'Slope': 2.5, 'Count': 34}, {'Slope': -0.562, 'Count': 12}]

元组按第一个值排序,然后按第二个值排序 - 您可以构建元组并将它们用作最大键函数。

关于python - 按键值过滤字典列表 - 将答案作为字典列表返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58346105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com