Вы можете фактически использовать несколько пунктов в понимании списка для достижения этого (предположим, что вы хотите nums[i]
копий nums[i + 1]
в списке и вы хотите, чтобы список был одномерным):
nums = [2, 1, 3, 2]
res = [nums[i+1] for i in range(0,len(nums),2) for _ in range(nums[i])]
# [1, 1, 2, 2, 2]
Здесь я использую и for i in range(0, len(nums), 2)
, как было в вашем исходном коде, и for _ in range(nums[i])
для имитации повторения, предоставленного * nums[i]
.
Затем вы можете заключить это в другой список, если хотите .