ホームページ > バックエンド開発 > Python チュートリアル > Python プログラミング: ループを回避する優れた方法!

Python プログラミング: ループを回避する優れた方法!

PHPz
リリース: 2023-04-26 15:10:08
転載
1806 人が閲覧しました

Python でループを使用すると非常に時間がかかることはわかっていますが、同じような状況に陥った場合はどうすればよいでしょうか?

不要在 Python 中使用循环,这些方法其实更棒!

#この記事では、Python ループの置き換えに使用できるメソッドと例を紹介します。

    Map
  • Filter
  • Reduce
#ラムダ関数に詳しくない場合は、上記の関数の使用を開始する前に、簡単に見てみましょう。

Lambda 関数は、通常の関数の代替です。これは 1 行のコードで定義できるため、コード内で占める時間とスペースが少なくなります。たとえば、以下のコードでは、ラムダ関数が動作していることがわかります。

def multiply_by_2(x):
x*2
ログイン後にコピー

lambda function

lambda x: x*2
ログイン後にコピー

注: 通常の関数の代わりに lambda 関数を使用することをお勧めします。

1. Map

map 関数を使用すると、反復可能なオブジェクト (リスト、タプルなど) の各値に関数を適用できます。

map(function, iterable)
ログイン後にコピー

リスト (反復可能なオブジェクト) 内の平方数を取得したいとします。まず、数値の 2 乗を求める square() 関数を作成します。

def square(x):
return x*x
ログイン後にコピー

次に、map 関数を使用して、数値の入力リストに square() 関数を適用します。

input_list = [2, 3, 4, 5, 6]
# Without lambda 
result = map(square, input_list)
# Using lambda function 
result = map(lambda x: x*x, input_list)
# converting the numbers into a list
list(result)
# Output: [4, 9, 16, 25, 36]
ログイン後にコピー

2. Filter

直感的には、フィルター関数は反復可能なオブジェクト (リスト、タプル、セットなど) から値をフィルターで除外するために使用されます。フィルター条件は、フィルター関数にパラメーターとして渡される関数内で設定されます。

filter(function, iterable)
ログイン後にコピー

フィルター関数を使用して、10 未満の値をフィルターします。

def less_than_10(x):
if x < 10:
return x
ログイン後にコピー

次に、Filter 関数を使用して、less_than_10() 関数を値のリストに適用します。

input_list = [2, 3, 4, 5, 10, 12, 14] 
# Without lambda
list(filter(less_than_10, input_list))
# using lambda function 
list(filter(lambda x: x < 10, input_list))
# Output: [2, 3, 4, 5]
ログイン後にコピー

3. Reduce

Reduce 関数は、map 関数や filter 関数とは少し異なります。これは反復可能オブジェクトのすべての値に反復的に適用され、値を 1 つだけ返します。

次の例では、加算関数を適用して数値のリストを削減します。最終的な出力は、リスト内のすべての数値の合計である 15 になります。

2 つの入力数値を加算する add() 関数を作成しましょう。 不要在 Python 中使用循环,这些方法其实更棒!

def addition(x,y):
return x + y
ログイン後にコピー

次に、リスト内のすべての数値の合計を取得するために、この加算関数をreduce関数の引数として適用します。

rreeee


以上がPython プログラミング: ループを回避する優れた方法!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:51cto.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート