ホームページ  >  記事  >  バックエンド開発  >  Python の効率を向上させる 5 つの高度な使用法

Python の効率を向上させる 5 つの高度な使用法

coldplay.xixi
coldplay.xixiオリジナル
2021-02-22 17:29:032824ブラウズ

Python の効率を向上させる 5 つの高度な使用法

# 無料学習に関する推奨事項: Python ビデオ チュートリアル

Python の効率を向上させる 5 つの高度な使用法## プログラミング言語の高度な機能は、通常、豊富な経験を通じて発見されます。あなたが複雑なプロジェクトに取り組んでいて、スタックオーバーフローに関する質問に対する答えを探しているとします。すると突然、これまで存在を知らなかった Python 機能を使用する非常にエレガントなソリューションを発見することになります。

この学習方法はとても興味深いものです。探索を通じて、偶然何かを発見します。

ここでは、Python の 5 つの高度な機能とその使用法を紹介します。

Lambda 関数

Lambda 関数は比較的小さな匿名関数です。匿名とは、実際には関数名がないことを意味します。

Python 関数は通常、def a_function_name() スタイルを使用して定義されますが、ラムダ関数の場合は名前をまったく付けません。これは、ラムダ関数の機能が、関数を完全に定義せずに単純な式または演算を実行することであるためです。

ラムダ関数は任意の数のパラメーターを取ることができますが、式には 1 つのみしか含めることができません。


Python の効率を向上させる 5 つの高度な使用法 なんと簡単なことでしょう!関数全体を定義せずに、いくつかの単純な数学演算を実行しました。これは、Python をクリーンでシンプルなプログラミング言語にする多くの機能の 1 つです。

Map 関数

Map() は、リストや辞書など、さまざまなデータ構造内の要素に関数を適用できる組み込み Python 関数です。これは、この操作を実行するための非常にクリーンで読みやすい方法です。


Python の効率を向上させる 5 つの高度な使用法
フィルター関数

#フィルター組み込み関数は、シーケンス構造 (リスト、タプル) にも関数を適用するという点で、マップ関数とよく似ています。 、辞書)。 2 つの主な違いは、filter() は、適用された関数が True を返す要素のみを返すことです。

詳細については、次の例を参照してください。


Python の効率を向上させる 5 つの高度な使用法 各リスト要素を True または False で評価するだけでなく、filter() 関数は、True に一致する要素のみが返されることも保証します。式のチェックと戻りリストの構築という 2 つのステップを処理するのに非常に便利です。

Itertools モジュール

Python の Itertools モジュールは、イテレータを操作するためのツールのコレクションです。イテレータは、リスト、タプル、辞書などの for ループ ステートメントで使用できるデータ型です。

Itertools モジュールの関数を使用すると、複数行の関数や複雑なリスト内包表記を必要とする多くの反復子操作を実行できます。 Itertools の魅力については、次の例を参照してください。


Python の効率を向上させる 5 つの高度な使用法
Python の効率を向上させる 5 つの高度な使用法
Generator 関数

Generator 関数はイテレータのような関数です。つまり、for ループ ステートメントでも使用できます。これにより、単純な for ループと比較してコードが大幅に簡素化され、多くのメモリが節約されます。

たとえば、1 から 1000 までのすべての数値を加算したいとします。次のコード ブロックの最初の部分では、for ループを使用してこの計算を実行する方法を示します。

リストが小さい場合 (1000 行など)、計算に必要なメモリは問題ありません。ただし、リストが 10 億個の浮動小数点数など巨大な場合、問題が発生します。この種の for ループを使用すると、メモリ内に膨大なリストが存在することになりますが、誰もがそれほど多くのものを保存できる無制限の RAM を持っているわけではありません。 Python の range() 関数も同じことを行い、メモリ内にリストを構築します。

コードの 2 番目の部分は、Python ジェネレーター関数を使用して数値のリストを合計する方法を示しています。ジェネレータ関数は要素を作成し、必要な場合にのみ、つまり一度に 1 つずつメモリに保存します。これは、10 億個の浮動小数点数を作成した場合、一度に 1 つずつしかメモリに格納できないことを意味します。 Python 2.x の xrange() 関数は、ジェネレーターを使用してリストを作成します。

上記の例は、広い範囲のリストを生成する場合は、ジェネレーター関数を使用する必要があることを示しています。このアプローチは、モバイル デバイスやエッジ コンピューティングなど、メモリが限られている場合に特に重要です。

とはいえ、リストを複数回反復処理する必要があり、リストがメモリに収まるほど小さい場合は、for ループまたは Python 2.x の range 関数を使用する方が良いでしょう。ジェネレーター関数と xrange 関数はアクセスするたびに新しいリスト値を生成するため、Python 2.x の range 関数は静的リストであり、整数はすぐにアクセスできるようにすでにメモリーに配置されています。
Python の効率を向上させる 5 つの高度な使用法
Python開発、クローラ技術、Pythonデータ分析、人工知能などの技術をもっと気軽に学びたい初心者向けに、Pythonの入門から実践までのセット学習教材も用意しています。無料で。 。

関連する無料学習の推奨事項: Python チュートリアル(ビデオ)

以上がPython の効率を向上させる 5 つの高度な使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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