在python中,如何从字典中删除某个数字上的key:pairs?

2024-09-28 20:48:27 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个数字和一个字典,“remove_numbers_bigger_than”将删除值大于给定数字的所有键。返回修改后的词典

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

Tags: innumberfordictionaryif字典defitems
3条回答

就地方法可以简化一点。整个dict只迭代一次,辅助列表只保存有问题的键,而不是所有键

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

您可以使用此代码段,它将在字典上循环,选择小于或等于给定数字的数字,并使用所选数字创建新字典

def remove_numbers_larger_than(dictionary, number):
    return { key: dictionary[key] for key in dictionary if dictionary[key] <= number }

如果需要修改给定的dict,请首先复制这些键,以便从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)

相关问题 更多 >