首页 > 解决方案 > python3中的延迟切片

问题描述

我在 python 中有一个巨大的列表(~1_800_000 个项目),它是使用map()来自大约 1000 个 JSON 文件的函数构建的。我想检查几个首要项目以确保脚本正常工作。我这样做是这样的:

items = map(lambda file: load_json(file), file_list)
print(list(items)[:5])

将地图转换为列表大约需要 5-10 秒,是否可以在不将map结果转换为的情况下获取少量第一项list

标签: pythonlist

解决方案


你可以做:

items = map(lambda file: load_json(file), file_list)
print([next(items) for _ in range(5)])

或者使用itertools.islice,它有一点优势,如果你有少于五个项目它不会失败:

items = map(lambda file: load_json(file), file_list)
print(list(itertools.islice(items, 5)))

请注意,这两个都消耗 中的第一个元素items,因此如果您想“窥视”这些元素然后获取整个列表,则需要先添加这些项目。


推荐阅读