【发布时间】:2020-07-31 07:09:47
【问题描述】:
我是 python 新手并试图找到解决问题的方法:
问题是编写一个函数,扫描记录数组并返回具有指定键最小值的记录。不包含指定键的记录被认为具有该键的值0。
请注意,键可能会映射到负值!
我的解决方案:
def min_by_key(k,ld):
min_val=min([d.get(k,0) for d in ld])
for dt in ld:
if dt.get(k,0)==min_val:
return dt
assert min_by_key("a", [{"a": 1, "b": 2}, {"a": 2}]) == {"a": 1, "b": 2}
assert min_by_key("a", [{"a": 2}, {"a": 1, "b": 2}]) == {"a": 1, "b": 2}
assert min_by_key("b", [{"a": 1, "b": 2}, {"a": 2}]) == {"a": 2}
assert min_by_key("a", [{}]) == {}
assert min_by_key("b", [{"a": -1}, {"b": -1}]) == {"b": -1}
它正在工作,但需要知道有没有更好的方法来做到这一点。
【问题讨论】:
标签: python dictionary maps