3 回答
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)
TA贡献1780条经验 获得超5个赞
就地方法可以稍微简化一下。整个字典只迭代一次,辅助列表只包含有问题的键,而不是所有键。
for k in [k for k, v in dictionary.items() if v > number]: del dictionary[k]
TA贡献1828条经验 获得超13个赞
您可以使用此代码段,它将遍历字典,选择小于或等于给定数字的数字,并使用所选数字创建一个新字典。
def remove_numbers_larger_than(dictionary, number):
return { key: dictionary[key] for key in dictionary if dictionary[key] <= number }
添加回答
举报
