为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 python 字典中删除 key: pairs over a certain number?

如何从 python 字典中删除 key: pairs over a certain number?

PIPIONE 2022-12-27 15:20:11
给定一个数字和一个字典,“remove_numbers_larger_than”删除任何值大于给定数字的键。返回修改后的字典。def remove_numbers_larger_than(dictionary, number):    for k, v in dictionary.items():        if v > number:            del d[k]    return dictionary
查看完整描述

3 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

如果您需要dict就地修改给定,请先复制键,以便从字典中删除键不会干扰迭代。


def remove_numbers_larger_than(dictionary, number):

    keys = list(dictionary)

    for k in keys:

        if dictionary[k] > number:

            del dictionary[k]

    return dictionary

如果您有空创建一个新的dict,


def remove_numbers_larger_than(dictionary, number):

    return dict(kv for kv in dictionary.items() if kv[1] <= number)


查看完整回答
反对 回复 2022-12-27
?
翻阅古今

TA贡献1780条经验 获得超5个赞

就地方法可以稍微简化一下。整个字典只迭代一次,辅助列表只包含有问题的键,而不是所有键。

for k in [k for k, v in dictionary.items() if v > number]:
    del dictionary[k]


查看完整回答
反对 回复 2022-12-27
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

您可以使用此代码段,它将遍历字典,选择小于或等于给定数字的数字,并使用所选数字创建一个新字典。


def remove_numbers_larger_than(dictionary, number):

    return { key: dictionary[key] for key in dictionary if dictionary[key] <= number }


查看完整回答
反对 回复 2022-12-27
  • 3 回答
  • 0 关注
  • 78 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信