我在 python 中有一个巨大的列表(~1_800_000 个项目),它是使用map()来自大约 1000 个 JSON 文件的函数构建的。我想检查几个第一项以确保脚本正常工作。我是这样做的:
items = map(lambda file: load_json(file), file_list)
print(list(items)[:5])
Run Code Online (Sandbox Code Playgroud)
将地图转换为列表大约需要 5-10 秒,是否可以在不将map结果转换为的情况下取几个第一项list?
你可以做:
items = map(lambda file: load_json(file), file_list)
print([next(items) for _ in range(5)])
Run Code Online (Sandbox Code Playgroud)
或者使用itertools.islice,它有一个小小的优势,如果你的项目少于五个,它不会失败:
items = map(lambda file: load_json(file), file_list)
print(list(itertools.islice(items, 5)))
Run Code Online (Sandbox Code Playgroud)
请注意,这两个都消耗 中的第一个元素items,因此如果您想“查看”这些元素然后获取整个列表,则需要先添加这些项目。