以下是一个示例代码,演示了如何按两个嵌套值过滤对象:
def filter_objects(objects, key1, value1, key2, value2):
filtered_objects = []
for obj in objects:
if key1 in obj and key2 in obj:
if obj[key1] == value1 and obj[key2] == value2:
filtered_objects.append(obj)
return filtered_objects
# 示例数据
objects = [
{"name": "Alice", "age": 25, "gender": "female"},
{"name": "Bob", "age": 30, "gender": "male"},
{"name": "Charlie", "age": 35, "gender": "male"},
{"name": "Alice", "age": 28, "gender": "female"},
{"name": "David", "age": 30, "gender": "male"}
]
# 按两个嵌套值过滤对象
filtered_objects = filter_objects(objects, "name", "Alice", "age", 25)
print(filtered_objects)
输出结果:
[{'name': 'Alice', 'age': 25, 'gender': 'female'}]
在上述示例中,filter_objects
函数接受一个对象列表 objects
,以及两个键值对 key1
, value1
和 key2
, value2
。它遍历每个对象,检查是否存在两个指定的键,然后比较键值对是否与给定的值匹配。如果匹配,将对象添加到 filtered_objects
列表中。最后,返回过滤后的对象列表。
在示例数据中,我们按照姓名为 "Alice" 和年龄为 25 过滤对象,结果只有一个对象满足条件,即 {'name': 'Alice', 'age': 25, 'gender': 'female'}
。