Python如何遍历字典列表 提取指定键对应的所有值
遍历字典列表提取指定键对应值的实现方法
核心逻辑为逐一枚举列表内的字典元素,通过键名索引取值即可,针对提取jpg格式文件名的需求,可搭配后缀判断逻辑过滤结果,具体实现如下:
方法1:基础for循环(可读性高,支持复杂逻辑扩展)
该写法容错性强,适合需要在遍历过程中增加额外处理逻辑的场景:
# 注意:不要使用list作为自定义变量名,会覆盖Python内置列表类型引发异常 data_list = [ {'convertedDate': '2022-02-14 13:23:01.560000', 'filename': '20220214T132301560.jpg'}, {'convertedDate': '2022-02-14 13:23:03.840000', 'filename': '20220214T132303840.jpg'}, {'convertedDate': '2022-02-14 13:23:07.860000', 'filename': '20220214T132307860.jpg'} ] jpg_filenames = [] for item in data_list: # 先判断目标键是否存在,避免KeyError报错 if 'filename' in item: file_name = item['filename'] # 转小写后判断后缀,兼容.JPG等大写后缀格式 if file_name.lower().endswith('.jpg'): jpg_filenames.append(file_name) # 输出结果:['20220214T132301560.jpg', '20220214T132303840.jpg', '20220214T132307860.jpg'] print(jpg_filenames)
方法2:列表推导式(写法简洁,适合简单提取场景)
如果不需要额外复杂处理,可直接用列表推导式一行完成提取:
data_list = [ {'convertedDate': '2022-02-14 13:23:01.560000', 'filename': '20220214T132301560.jpg'}, {'convertedDate': '2022-02-14 13:23:03.840000', 'filename': '20220214T132303840.jpg'}, {'convertedDate': '2022-02-14 13:23:07.860000', 'filename': '20220214T132307860.jpg'} ] jpg_filenames = [ item['filename'] for item in data_list if 'filename' in item and item['filename'].lower().endswith('.jpg') ]
提示:如果可以确定列表内所有字典都存在目标键,可省略
'filename' in item的判断逻辑,直接取值即可。
内容的提问来源于stack exchange,提问作者Prathap David Carlo
相关产品推荐
相关产品推荐

