python - 无论如何在列表理解中的 1 行中执行此操作?
问题描述
地图上的返回是列表的生成器。我想把它变成一个单一的列表。这可行,但我想知道我是否可以在列表理解中的一行代码中做到这一点。
with futures.ThreadPoolExecutor(max_workers=20) as executor:
dirs = []
for workers in executor.map(partial_subdirs, prefix_list):
for w in workers:
dirs.append(w)
我已经尝试过,这不会将列表附加到 1 个列表中,而是创建一个列表列表:
with futures.ThreadPoolExecutor(max_workers=20) as executor:
dirs = [(f + f) for f in executor.map(partial_subdirs, prefix_list)]
解决方案
您可以使用list.extend
摆脱内循环:
dirs = []
for workers in executor.map(partial_subdirs, prefix_list):
dirs.extend(workers)
或者对于单线(可能是最有效的)使用itertools.chain.from_iterable
:
from itertools import chain
dirs = list(chain.from_iterable(executor.map(partial_subdirs, prefix_list)))
推荐阅读
- python - Pandas Dataframe 根据现有数据添加列
- yum - 在本地 mrepo 服务器上运行 yum update 时如何解决“403 禁止”错误
- c# - 刚体 fps 控制器问题
- nestjs - NestJS 复制资产文件
- shell - Shell检查文件中的一个词来做一个语句
- python - 如何在python中生成修改后的单位矩阵
- python - 将 FastAPI 中的请求记录到项目目录中的特定文件中
- python - 如何在我的 Jupyter Sagemaker 笔记本实例中导入最新版本的 pandas?
- c - 我无法根据给出 Sum 生成数组的子集
- c++ - 以螺旋方式打印矩阵的程序。(不能正常工作)