-2

関数リストに格納されている関数オブジェクトのリストを呼び出すために、python2 で次のように動作します。

for f in functions:
    map(f, data)

上記が機能しないように見えるため、python3に相当するものは何ですか

4

2 に答える 2

1

mapPython 3 では、イテレータを返すため、呼び出しただけでは何も起こりません。

明らかに戻り値を気にしないので、明示的なループを使用するのが最善だと思います:

for f in functions:
    for d in data:
       f(d)

実際に結果をPython2に保存する場合:

for f in functions:
    a = map(f, data)

次に、それを次のように変更できます

for f in functions:
    a = list(map(f, data))

ただし、実際に戻り値が必要ない場合は、リストを使用しないことをお勧めします。それらを構築してすぐに破棄するには、余分な時間とメモリが必要です。

于 2012-12-02T10:33:01.103 に答える
-1

ネストされたリスト内包表記を使用できます。

[[f(d) for d in data] for f in functions]

または、マップ オブジェクトをリストに変換するなどして評価します。

list(map(f, data))
于 2012-12-02T10:35:26.543 に答える