You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python循环中如何将多个字典正确追加到单个列表?

问题解决:生成包含所有图片路径的字典列表

需求是生成包含指定目录下三张图片路径的字典列表,预期格式如下:

[{'doc_id': 1, 'doc_path': 'E:\\Python_data\\image_data\\Image_1.jpeg'},
 {'doc_id': 1, 'doc_path': 'E:\\Python_data\\image_data\\Image_2.jpeg'},
 {'doc_id': 1, 'doc_path': 'E:\\Python_data\\image_data\\Image_3.jpeg'}]

用户原始代码如下:

import cv2 
import os 
import glob 
img_dir = "E:\Python_data\image_data"
data_path = os.path.join(img_dir,'*g') 
files = glob.glob(data_path) 
for i in files:
   dict1 = {"doc_id": 1,"doc_path": i}
   list1=[]
   list1.append(dict1.copy())
print(list1,'<--My list')

运行后仅保留最后一张图片的字典,原因是在循环内部每次都重新初始化空列表list1,导致每次循环都会丢弃之前的内容,只保留当前图片的字典条目。

修正后的代码

把列表初始化语句list1=[]移到循环外部,确保所有字典都追加到同一个列表中:

import cv2 
import os 
import glob 
img_dir = "E:\Python_data\image_data"
data_path = os.path.join(img_dir,'*g') 
files = glob.glob(data_path) 
# 初始化空列表在循环外
list1 = []
for i in files:
   dict1 = {"doc_id": 1,"doc_path": i}
   list1.append(dict1.copy())
print(list1,'<--My list')

运行结果

执行修正后的代码,将得到预期的包含所有三张图片路径的字典列表:

[{'doc_id': 1, 'doc_path': 'E:\\Python_data\\image_data\\Image_1.jpeg'}, {'doc_id': 1, 'doc_path': 'E:\\Python_data\\image_data\\Image_2.jpeg'}, {'doc_id': 1, 'doc_path': 'E:\\Python_data\\image_data\\Image_3.jpeg'}] <--My list

内容的提问来源于stack exchange,提问作者Chirag Patankar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 13:03:30