我有以下代码来创建图像字典列表:
planet_templates = []
for file in glob.glob("templates/*.png"):
image = cv2.imread(file, cv2.IMREAD_GRAYSCALE)
width, height = image.shape
imdict = {
'name': file,
'height': height,
'width': width,
}
planet_templates.append(imdict)
基本上读取文件夹下的图像,并将其放入词典列表中。
然后,我想正确地将它们的每个字典值和键读入循环中的变量。因此,我尝试以下操作:
for dict in planet_templates:
for key in dict:
print(dict[key])
但是,这不能给我我想要的东西。而是抛出整个列表,不标记任何名称,宽度或高度:
222
templates/jupiter.png
294
713
templates/sun.png
137
161
templates/uranus.png
139
44
templates/mercury.png
44
50
templates/mars.png
50
200
templates/saturn.png
217
49
templates/venus.png
43
58
templates/earth.png
55
107
templates/neptune.png
148
我想拥有:
name: templates/neptune.png
height: 148
width: 107
,甚至将它们分配给变量(如果可能)。如:
width, height, name = templates[i].shape[::-1]
当然shape[::-1]
在这里是行不通的,因为字典没有这样的属性,但是您明白了,等同的意思。
我该如何实现?预先感谢。
答案 0 :(得分:3)
使用
planet_templates = [{"name": "templates/neptune.png", "width": 107, "height": 148}]
for d in planet_templates:
for key, value in d.items():
print("{0}: {1}".format(key, value))
输出:
width: 107
name: templates/neptune.png
height: 148