如何在命令行中获取值的多重数组

2024-09-24 22:17:27 发布

您现在位置:Python中文网/ 问答频道 /正文

给出:

[{'chin': [(297, 322), (297, 339), (299, 356), (301, 373), (305, 390), (312, 405), (325, 415), (342, 418),
                 (362, 420), (383, 421), (402, 421), (418, 415), (427, 403), (433, 387), (437, 370), (440, 352),
                 (443, 335)],
        'left_eyebrow': [(306, 296), (313, 282), (326, 276), (342, 276), (357, 281)],
        'right_eyebrow': [(378, 283), (393, 278), (410, 281), (423, 289), (431, 303)],
        'nose_bridge': [(366, 297), (365, 305), (364, 314), (363, 323)],
        'nose_tip': [(347, 337), (355, 340), (364, 341), (373, 340), (382, 339)],
        'left_eye': [(321, 304), (328, 296), (339, 296), (349, 304), (339, 305), (328, 305)],
        'right_eye': [(386, 307), (397, 299), (407, 300), (415, 309), (407, 309), (396, 308)],
        'top_lip': [(332, 363), (343, 355), (355, 351), (363, 353), (372, 352), (385, 357), (399, 366), (394, 365),
                    (372, 359), (363, 359), (355, 359), (337, 362)],
        'bottom_lip': [(399, 366), (385, 368), (372, 369), (363, 369), (354, 368), (343, 366), (332, 363), (337, 362),
                       (354, 360), (363, 361), (372, 361), (394, 365)]}]

我想得到所有的坐标值,去掉下巴,等等。 就像坐标(297322)


Tags: righttopleftnosebridgeeyetipbottom
3条回答

你可以这样做:

output = []
for k in lst[0].keys():
   for p in lst[0][k]:
       output.append(p)
print(output)

可以循环遍历lst元素,然后找到它包含的字典的值,如下所示:

coords = []
for d in lst:
    coord.append(d.values())

print(coords)

如果代码格式正确,这将变得容易得多:

lst = [
    {
        'chin': [
            (297, 322), (297, 339), (299, 356), (301, 373), (305, 390), (312, 405), (325, 415), (342, 418), (362, 420), (383, 421), (402, 421), (418, 415), (427, 403), (433, 387), (437, 370), (440, 352), (443, 335)
        ],
        'left_eyebrow': [
            (306, 296), (313, 282), (326, 276), (342, 276), (357, 281)
        ],
        'right_eyebrow': [
            (378, 283), (393, 278), (410, 281), (423, 289), (431, 303)
        ],
        'nose_bridge': [
            (366, 297), (365, 305), (364, 314), (363, 323)
        ],
        'nose_tip': [
            (347, 337), (355, 340), (364, 341), (373, 340), (382, 339)
        ],
        'left_eye': [
            (321, 304), (328, 296), (339, 296), (349, 304), (339, 305), (328, 305)
        ],
        'right_eye': [
            (386, 307), (397, 299), (407, 300), (415, 309), (407, 309), (396, 308)
        ],
        'top_lip': [
            (332, 363), (343, 355), (355, 351), (363, 353), (372, 352), (385, 357), (399, 366), (394, 365), (372, 359), (363, 359), (355, 359), (337, 362)
        ],
        'bottom_lip': [
            (399, 366), (385, 368), (372, 369), (363, 369), (354, 368), (343, 366), (332, 363), (337, 362), (354, 360), (363, 361), (372, 361), (394, 365)
        ]
    }
]

它是一个包含字典的列表,其中每个键的值是一个元组列表。你知道吗

for k in lst[0].keys():
    print(lst[0][k])

要跳过chin

for k in lst[0].keys():
    if k == "chin":
        continue

    print(lst[0][k])

相关问题 更多 >