【问题标题】:Create a list of list from a flat list [duplicate]从平面列表创建列表列表[重复]
【发布时间】:2020-04-12 11:56:32
【问题描述】:

我知道如何将列表列表转换为平面列表。例如,

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]

【问题讨论】:

  • 为什么用numpy标记?

标签: python python-3.x list numpy numpy-ndarray


【解决方案1】:

只需切片:

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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    相关资源
    最近更新 更多