次のようにして作成したタプルを解凍したいので、結果は1つの単純なリストになります。2〜3行で目的の結果を得ることができますが、確かにoneliner list.compがありますか?
x = range(10)
y = [(i,j**2) for i,j in zip(x,x)]
>>>y
[(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25), (6, 36), (7, 49), (8, 64), (9
, 81)]
>>>
私が欲しいのはresult = [0,0,1,1,2,4,3,9.....]
やっている
y = len(x)*[0]
y[::2] = x
y[1::2] = [i**2 for i in x]
私が望むものを提供しますが、より一般的なケースが必要な場合はどうなりますか:
y = [(i, sqrt(i), i**3, some_operation_on_i, f(i), g(i)) for i in x]
たとえば、各 i に続く操作 (正方形) を 1 つだけ指定した結果のようなストレート リストを取得できるはずですが、各 i に続く任意の数の操作を使用できます。