python - 从平面列表创建列表列表
问题描述
我知道如何将列表列表转换为平面列表。例如,
import itertools
list_ = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
merged = list(itertools.chain.from_iterable(list_))
print(merged)
>> [1, 2, 3, 4, 5, 6, 7, 8, 9]
有没有可能换一种方式?在这种情况下,对于给定的平面列表,是否可以使列表列表包含三个元素?我想看到这样的输出
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
对于给定的输入[1, 2, 3, 4, 5, 6, 7, 8, 9]
解决方案
只需切片:
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
b = [a[i:i+3] for i in range(0, len(a), 3)]
print(b) # [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
或者,如果您真的想像标签所暗示的那样使用 numpy,请reshape()
按照上面的建议使用
推荐阅读
- ios - 如何在 swift 5 中使用动态键处理对象映射
- powershell - 如何删除 Powershell 脚本本身正在使用的文件?
- r-markdown - 如何将字幕/副标题添加到 huxtable 回归表?
- python - TypeError:模型“SaleOrder”继承自不存在的模型
- angular - 在 Angular2 中,mailto 链接被识别为组件路由
- sql - How to extract Column names and its values from the Database table, which are concatenated
- excel-formula - Excel 公式查找,这是如何工作的?
- php - 运行一个繁重的 PHP 脚本,将数据插入 Wordpress 数据库
- apache-spark - Spark FP-Growth 算法中的“lift”参数是什么意思?
- kaitai-struct - Kaitai Struct 外部文件中引用枚举