0

map関数を使用して 2 つの個別の配列にマップしようとしています。基本的にforループ構文では、

for exp in expiration:
   for symb in symbol:
         f(exp,symb)

私は現在私のコードに持っています:

map(expiration, lambda exp: map(symbol, f(exp,symbol) )

しかし、私が得ているエラーは、 の 2 番目の引数がmap()反復をサポートする必要があるということです。

前もって感謝します!

4

3 に答える 3

2

次の代わりに、ネストされたリスト内包表記を使用してこれを行うことができますmap

result = [ f(exp, symb) for exp in expiration for symb in symbol ]

こちらの方が読みやすくわかりやすいと思います。

ただし、リスト内包表記の結果が必要ない場合は、不必要にリストを作成しているため、元のアプローチを使用します。

于 2013-11-07T18:17:14.737 に答える
1

引数が間違っていると思います。イテラブルはラムダの後に来るはずです:

map(lambda exp: map(symbol, f(exp,symbol), expiration)
于 2013-11-07T18:25:49.450 に答える
1

マップ機能に誤りがあります。最初の引数は関数、2 番目の引数は iterable です。

map(lambda e: map(lambda s: f(e,s), symbol),expiration)
于 2013-11-07T18:31:21.757 に答える