使用列表理解重复二维数组中的条目

Jac*_*lph 0 python list-comprehension list

我有以下一段代码,目的是将 2D 列表的每个元素重复一定次数:

empty =[]
l = [[1,2,3], [4,5,6]]
n = [2,3]
for i, _as in enumerate(l):
    for _a in _as:
        for _n in range(n[i]):
            empty.append(_a)

empty
> [1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6]
Run Code Online (Sandbox Code Playgroud)

我想尝试用单行列表理解格式来写这个。

我尝试使用以下方法:

empty = [
         [
           [_a]*n[i] for _a in _as
         ] 
         for i, _as in enumerate(l) 
        ]

empty
> [[[1, 1], [2, 2], [3, 3]], [[4, 4, 4], [5, 5, 5], [6, 6, 6]]]
Run Code Online (Sandbox Code Playgroud)

如何更正上述代码以提供所需的结果?

Vis*_*ngh 5

如果您只是想将代码转换为列表理解,那么只需按原始顺序编写循环即可。这样你就永远不会忘记如何使用列表理解来完成任务。

output = [
    _a
    for i, _as in enumerate(l)
    for _a in _as
    for _n in range(n[i])
]
Run Code Online (Sandbox Code Playgroud)