python - 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
?
解决方案
你可以做:
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
,因此如果您想“窥视”这些元素然后获取整个列表,则需要先添加这些项目。
推荐阅读
- c++ - c++ how to bind a general function with multiple map object and call it clear function
- nhibernate - 自定义 IConnectionProvider 如何“注入”所需的依赖项?
- excel - VBA:单步执行时复制和粘贴范围作为图片工作,但运行时出现“运行时错误'1004'”
- postgresql - 在 postgresql 中是否可以直接读取
- java - Spring Boot 中的现有客户端验证?
- arrays - 有没有办法在 Tarantool 中存储数组的字段上建立索引?
- postscript - 使用过程作为 ReusableStreamDecode 过滤器的数据源
- sorting - 地图中除数的最佳重构
- html - 尝试更改特定导航栏的格式
- python - Python中的行进广场算法