gpt4 book ai didi

python - 在 python 2.7 中更快地从大列表中搜索 ID?

转载 作者:太空狗 更新时间:2023-10-30 01:56:24 24 4
gpt4 key购买 nike

所以我有这两个列表:

image_names = ["IMG_1.jpg", "IMG_2.jpg"]
data = [{"name": "IMG_1.jpg", "id": "53567"},
{"name": "IMG_2.jpg", "id": "53568"},
{"name": "IMG_3.jpg", "id": "53569"},
{"name": "IMG_4.jpg", "id": "53570"}]

我想在数据的 images_names 中搜索第一项,然后搜索下一项,依此类推,如果它具有相同的名称,则获取 ID 并将其添加到列表中。

我是这样做的:

for image_name in image_names:
for datum in data:
datum_name = datum.get("name", None)
if datum_name == image_name:
images_ids.append(datum.get("id", None))

现在它工作得很好,但我认为一旦我在 images_names 和数据中获得大量数据,这真的很低效。在 Python 中执行此操作的最佳方法是什么?我正在使用 python 2.7

最佳答案

主要问题是您的数据结构未设置为提供您想要的访问权限。将其设为您想使用的自然字典,而不是字典列表:

data = {"IMG_1.jpg": "53567",
"IMG_2.jpg": "53568",
"IMG_3.jpg": "53569",
"IMG_4.jpg": "53570"}

现在,您只需制作相应的 id 列表即可

images_ids = [data[img] for img in image_names]

如果你对这两种访问方式都有需求(如果你还需要nameid标签),那么我建议你学习使用Pandas数据框架,以 nameid 作为列。这将使您充分利用这两种方法。

关于python - 在 python 2.7 中更快地从大列表中搜索 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53746925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com