python - 在python的嵌套列表中创建嵌套列表
问题描述
我有这个嵌套列表:
list_1 = [[1,2,3], [1,2,3,4,5,6], [1,2,3,4,5,6,7,8,9]]
子列表元素的计数始终为 3。我希望每个子列表中有 3 个元素。期望的输出:
list_1 = [[1,2,3], [1,2,3], [4,5,6],[1,2,3], [4,5,6], [7,8,9]]
我可以做到这一点,但首先我必须展平列表,然后创建嵌套列表。我的代码:
list_1 = [values for sub_list in lists_1 for values in sub_list] # flatten it first
list_1 = [list_1[i:i+3] for i in range(0, len(list_1), 3)]
有没有办法跳过展平步骤并获得所需的结果?
解决方案
您可以使用嵌套列表推导:
list_1 = [[1,2,3], [1,2,3,4,5,6], [1,2,3,4,5,6,7,8,9]]
result = [i[j:j+3] for i in list_1 for j in range(0, len(i), 3)]
输出:
[[1, 2, 3], [1, 2, 3], [4, 5, 6], [1, 2, 3], [4, 5, 6], [7, 8, 9]]
推荐阅读
- java - apache poi 是否与 xalan jar 有任何依赖关系?
- python - 类似于 R 的 diffr 的 python 库
- c++ - 对于 Mask RCNN 模型,较小的图像对 OpenCV 中的推理时间几乎没有影响
- javascript - e.slice 不是函数
- druid - Druid - 防止在每次 CSV 摄取时创建新分区
- scala - Spark 与 Scala:通过在每个可能对上执行函数来计算表
- laravel - Laravel Sanctum 在不创建新令牌的情况下检索 PlainTextToken
- javascript - 是否可以在没有网络访问和服务器的情况下在本地使用反应?
- python - 将集合列表转换为字典
- python - 计算没有 sklearn 的机器学习模型的准确率