以下是一个示例代码,演示如何按键在不同类型的字典列表中进行搜索:
def search_dicts_by_key(dicts, key):
results = []
for d in dicts:
if isinstance(d, dict):
if key in d:
results.append(d[key])
elif isinstance(d, list):
for item in d:
if isinstance(item, dict) and key in item:
results.append(item[key])
return results
# 示例用法
dicts = [
{"name": "Alice", "age": 25},
{"name": "Bob", "age": 30},
[{"name": "Charlie", "age": 35}, {"name": "David", "age": 40}],
{"name": "Eve", "age": 45}
]
key = "name"
results = search_dicts_by_key(dicts, key)
print(results) # 输出: ['Alice', 'Bob', 'Charlie', 'David', 'Eve']
在上面的示例中,我们定义了一个search_dicts_by_key
函数,它接受一个字典列表(dicts
)和一个键(key
)作为参数。该函数遍历字典列表,对于每个字典或嵌套的字典列表,它检查键是否存在,并将对应的值添加到结果列表(results
)中。
请注意,我们使用了isinstance()
函数来检查列表和字典的类型。这是为了确保我们仅在字典和嵌套的字典列表中搜索键,而不是其他类型的元素。
在示例用法中,我们定义了一个示例的字典列表(dicts
),并指定键(key
)为"name"。然后,我们调用search_dicts_by_key
函数并打印结果。这将输出所有符合条件的键对应的值。