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)
如何更正上述代码以提供所需的结果?
如果您只是想将代码转换为列表理解,那么只需按原始顺序编写循环即可。这样你就永远不会忘记如何使用列表理解来完成任务。
output = [
_a
for i, _as in enumerate(l)
for _a in _as
for _n in range(n[i])
]
Run Code Online (Sandbox Code Playgroud)