[英]Trying to filter a list of dicts by the content of a nested list, but getting the same list of dicts back
[英]Use max and filter a list of dicts at the same time
我正在尝试filter
字典列表,同时使用max
function 根据键/值从该列表中获取最大值:
closest_objects = [
obj for obj in my_list
if obj['start_date'].date() <= today
]
closest_object = max(
closest_objects, key=lambda obj: obj['start_date']
)
return closest_object['todo_on_this_date']
但是我想知道如果有最快的方法或简化的方法,是否有更好的方法来实现此代码。
您可以使用生成器表达式来避免显式构造过滤列表:
closest_object = max((obj for obj in my_list if obj['start_date'].date() <= today),
key=lambda obj: obj['start_date'])
使用filter
和max
看起来像这样:
max(
filter(lambda _: _["start_date"].date() <= today, my_list),
key=lambda _: _["start_date"]
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.