1. ホーム
  2. python

[解決済み] リストの要素をn回繰り返す

2023-04-08 06:50:21

質問

リストの各要素を繰り返すには n の各要素を何度も繰り返して新しいリストを作るにはどうしたらよいでしょうか?例えば

x = [1,2,3,4]
n = 3

x1 = [1,1,1,2,2,2,3,3,3,4,4,4]

x * n は動作しません。

for i in x[i]:
    x1 = n * x[i]

シンプルでスマートな方法があるはずです。

どのように解決するのですか?

本当にリストとして結果を得たい場合で、ジェネレータでは不十分な場合。

import itertools
lst = range(1,5)
list(itertools.chain.from_iterable(itertools.repeat(x, 3) for x in lst))

Out[8]: [1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4]