访问词典项目列表

时间:2018-08-09 12:41:08

标签: python opencv

我有以下代码来创建图像字典列表:

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]在这里是行不通的,因为字典没有这样的属性,但是您明白了,等同的意思。

我该如何实现?预先感谢。

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