ホームページ  >  記事  >  バックエンド開発  >  Python の `filter`、`map`、および `reduce` 関数は Python 3 でどのように変更されましたか?

Python の `filter`、`map`、および `reduce` 関数は Python 3 でどのように変更されましたか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-27 14:41:17377ブラウズ

How Have Python's `filter`, `map`, and `reduce` Functions Changed in Python 3?

Python の関数ツールの進化を理解する: filter、map、reduce

Python 3 では、filter、map、 Reduce 関数は、Python 2 の対応する関数と比べて大幅に変更されています。これにより、以前の構文に慣れているユーザーは混乱する可能性があります。

フィルターとマップの変更

Python 3 では、フィルターとマップの両方がリストではなくイテレーターを返します。これは、具体的なデータ構造の生成から、より効率的でメモリ効率の高いビューの提供への移行の結果です。結果としてリストを取得する必要がある場合は、 list() 関数を使用してイテレータを変換できます。 list(フィルター(f, range(2, 25)))。ただし、より良い解決策は、リストの内包表記を検討するか、コードを再加工してリストの必要性を排除することです。

reduce の削除

Python 3 では、ビルドされた-inreduce関数。代わりに、ユーザーは必要に応じて functools.reduce 関数を使用する必要があります。ただし、ほとんどの場合、明示的な for ループを使用すると、より読みやすく効率的な代替手段が提供されることに注意することが重要です。

サンプル コードの変更

提供された Python を適応させるには2 のコードを Python 3 に変更すると、次の変更が行われます。必要:

# Python 2
filter(f, range(2, 25))
map(cube, range(1, 11))
reduce(add, range(1, 11))

# Python 3
list(filter(f, range(2, 25)))
list(map(cube, range(1, 11)))
functools.reduce(add, range(1, 11))

結論

Python 3 のこれらの変更を理解することで、開発者は予期せぬ事態を回避し、言語で利用可能な関数ツールを効果的に利用するコードを書くことができます。

以上がPython の `filter`、`map`、および `reduce` 関数は Python 3 でどのように変更されましたか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。