2

以前は、IDLE を使用して Python 2.7 で対話的にプログラミングしていました。2.7で、次のようなことをしたとき:

map(... some fn ..., ... some collection ...)

また

filter(... some fn ..., ... some collection ...)

関数を適用した結果のコレクションとして結果を取得しました。

Python 3.2 にアップグレードした後、同じことを行うと、「フィルター オブジェクト」または「マップ オブジェクト」を取得するだけで、コレクションを手動で反復処理して結果を確認する必要があります。

これは意図されたもので、関数出力の出力に関して古い IDLE のように動作する Python 3.2 IDE を知っていますか? 基本的に「REPL for Python」を探しています。

4

1 に答える 1

5

これは IDLE とは関係ありません。filter()および関数はmap()Python 3 で変更され、リストの代わりにイテレータを返すようになりました。

filter: イテレータを構築します...

map: イテレータを返す...

list(filter(...))結果をリストとして表示する場合は、 andを使用list(map(...))します。

または、リスト内包表記を使用できます。

[func(item) for item in somelist]  # same as list(map(func, somelist))
[item for item in somelist if func(item)]  # same as filter(func, somelist))
于 2012-10-30T10:35:39.567 に答える