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