前提・実現したいこと
あるリストの要素すべてに対して、あるリストの先頭の関数を適用した結果、得られたリストの要素すべてに対して、リストの次の関数を適用するようなコードを書きたいです。
例:1という数値が含まれるリストが与えられた際に、数値を2倍する関数で得られた[1,2]というリストに対して、次に数値を3倍する関数を適用し、[1, 2, 3, 6]という結果を得たい。
該当のソースコード
Python 3.7
import numpy as np # 関数の定義 bai2 = lambda x: x * 2 bai3 = lambda x: x * 3 # 関数用リスト function = [] function.append(bai2) function.append(bai3) # 結果リスト numbers = [1] # 結果リストに対して、関数リストを適用 for x in function: for y in numbers: #X周目は、numbersリストのX個目しかとっていない??? res = x(y) numbers.append(res) for i in numbers: print(i) # 得られる結果:1, 2, 6 # 得たい結果: 1, 2, 3, 6
上記の得たい結果とするためには、どこを改善すべきか、ご教示頂けないでしょうか?
二つ目のfor文が、意図した通りに動いていないように見受けられます。。。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/10 06:18