作者:黄岳雯淑怡彦璇 | 来源:互联网 | 2022-12-09 17:21
我有很长的文件路径列表,例如:
images = ['path/to/1.png', 'path/to/2.png']
我知道我可以将此列表包装在map迭代器中,该迭代器提供对通过函数映射的列表中的项的顺序访问,如:
image_map = map(cv2.imread, images)
然后,当我迭代列表时,我可以懒洋洋地加载这些图像文件:
next(image_map)
=> pixels
但我希望随机访问原始列表,通过我的map函数映射:
image_map[400]
=> pixels
我不想将它转换为a list
,因为这会将我的所有图像加载到内存中,并且它们不适合内存:
# Bad:
list(image_map)[400]
考虑这个的另一种方式可能是装饰者list.__getitem__
.
我知道我可以对列表进行子类化,但我真的希望有一种更清晰的方法.