如何在Python中基于多个键条件过滤字典列表?
如何在Python中基于多个键条件过滤字典列表?
嘿,我来帮你搞定这个问题!你已经用列表推导式实现了单条件过滤,其实要添加多条件非常简单,完全可以用Pythonic的方式轻松解决~
你只需要在列表推导式的判断部分,把多个条件用逻辑运算符and连接起来,就能筛选出同时满足所有条件的条目。针对你的需求,代码可以写成这样:
data = [ {"name": "Atif", "age": 25, "city": "Delhi"}, {"name": "Shahid", "age": 30, "city": "Gujrat"}, {"name": "Soumya", "age": 25, "city": "Bihar"}, {"name": "Rounak", "age": 22, "city": "Delhi"} ] # 同时满足age=25和city=Delhi的条件 filtered_data = [entry for entry in data if entry["age"] == 25 and entry["city"] == "Delhi"] print(filtered_data)
运行这段代码后,你会得到预期的结果:
[{"name": "Atif", "age": 25, "city": "Delhi"}]
如果之后你的过滤条件变得更复杂,或者需要重复使用这个逻辑,还可以把条件封装成一个函数,再配合filter()函数来实现,这样代码可读性会更好:
def meets_conditions(entry): return entry["age"] == 25 and entry["city"] == "Delhi" filtered_data = list(filter(meets_conditions, data))
不过在这种简单的场景下,列表推导式通常是更直观、更受Python社区推崇的写法哦。
备注:内容来源于stack exchange,提问作者Soumya
相关产品推荐
相关产品推荐

