3 回答

TA贡献1801条经验 获得超8个赞
主要问题是您的数据结构没有设置为您想要的访问权限。而不是一个字典列表,让它成为你想要使用的自然字典:
data = {"IMG_1.jpg": "53567",
"IMG_2.jpg": "53568",
"IMG_3.jpg": "53569",
"IMG_4.jpg": "53570"}
现在,您只需列出相应的ids列表即可
images_ids = [data[img] for img in image_names]
如果您需要两种访问方法(如果您仍然需要name和id标签),那么我建议您学习使用 Pandas 数据框,将name和id用作列。这将为您提供两种方法中最好的。

TA贡献1865条经验 获得超7个赞
>>> images_ids = [filter(lambda x: x['name'] == name, data) for name in image_names]
>>> images_ids = [i[0]['id'] for i in images_ids if i]
>>> images_ids
['53567', '53568']

TA贡献1851条经验 获得超5个赞
其他选择:
[ item["id"] for item in data if item["name"] in image_names]
#=> ['53567', '53568']
当同名图像存在不同 id时,它也适用:
data = [{"name": "IMG_1.jpg", "id": "53500"},{"name": "IMG_1.jpg", "id": "53501"}]
#=> ['53500', '53501']
添加回答
举报