リストから繰り返し値を作成するPythonのリスト内包表記は、私が作成しようとしています
[ x
for x in [1,2,3]
for y in [3,1,4] ]
出力:
[1, 1, 1, 2, 2, 2, 3, 3, 3]
しかし、私が欲しいのは
- 1 3回を作成することです
- 2 1回
- 3 4回
予想される出力:
[1, 1, 1, 2, 3, 3, 3, 3]
それはリストの内包でこれを行うことは可能ですか?
リストから繰り返し値を作成するPythonのリスト内包表記は、私が作成しようとしています
[ x
for x in [1,2,3]
for y in [3,1,4] ]
出力:
[1, 1, 1, 2, 2, 2, 3, 3, 3]
しかし、私が欲しいのは
予想される出力:
[1, 1, 1, 2, 3, 3, 3, 3]
それはリストの内包でこれを行うことは可能ですか?
そのカウントを使用して数字をペアリングするzip()
functionを使用します。zip
と
numbers = [1, 2, 3]
counts = [3, 1, 4]
output = [n for n, c in zip(numbers, counts) for _ in range(c)]
確かに、:
>>> [item for x,y in zip([1,2,3], [3,1,4]) for item in [x]*y]
[1, 1, 1, 2, 3, 3, 3, 3]
私があなたならば、あなたはまた、として配列で細かいnp.repeat
を使用することができますよ結果
import numpy as np
np.repeat([1, 2, 3] ,[3, 1, 4])