gpt4 book ai didi

python - 从 python 字典中删除最小的 N 个值

转载 作者:太空宇宙 更新时间:2023-11-04 11:22:04 24 4
gpt4 key购买 nike

假设我有以下字典:

d = {'q' : 2,
'b': 22,
'c': 19,
'e': 3,
'd': 9}

我想做的是迭代地从字典中删除最小值(及其键)。例如,如果我想删除 2 个最小值,我希望获得以下内容作为剩余字典:

d = {'b': 22,
'c': 19,
'd': 9}

请注意,在这种情况下,排序对我来说很重要。也就是说,原始字典中的项目在处理后不应重新排序。

我尝试了下面的代码,但它不适用于字典长度为 19 的示例,我需要删除 18 个最小值(及其关联的键)。

def remaining(dict, smallest_n):
remaining = dict
s = {}
for i in range(smallest_n-1):
m = min(remaining.values())
for k, v in remaining.items():
if v != m:
s[k] = v
remaining = s.copy()
s.clear()

return remaining

对于我上面提到的情况,当 smallest_n(即应该删除的最小元素的数量)等于 18,并且输入字典的大小为 19 时,我得到的是剩余的尺寸应为 1 (19-18)。但是,在执行代码行后它不包含任何内容。

最佳答案

min_key = min(d.keys(), key=lambda k: d[k])
del d[min_key]

这将删除具有最小值的条目。如果要删除多个,请循环执行此操作。

作为函数:

def remove_n_minimums(d, n):
for _ in range(n):
min_key = min(d.keys(), key=lambda k: d[k])
del d[min_key]

关于python - 从 python 字典中删除最小的 N 个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55753210/

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