ホームページ > バックエンド開発 > Python チュートリアル > 超使いやすい6つのPython組み込み関数を紹介

超使いやすい6つのPython組み込み関数を紹介

WBOY
リリース: 2022-06-15 21:14:50
転載
2000 人が閲覧しました

この記事では、python に関する関連知識を提供します, 主に組み込み関数に関する関連事項を紹介します. 主に、Lambda、map、reduce、zip、など、6 つの非常に使いやすい関数を紹介します。 filter 関数や enumerate 関数を一緒に見ていきましょう。

超使いやすい6つのPython組み込み関数を紹介

推奨学習: Python ビデオ チュートリアル

Lambda 関数

Lambda関数の使用法匿名関数、つまり名前のない関数を作成するために使用されます。これは単なる式であり、関数本体は def よりもはるかに単純です。匿名関数は、単一の操作を実行し、1 行で記述できる関数を作成する必要がある場合に使用されます。

lambda [arg1 [,arg2,.....argn]]:expression
ログイン後にコピー

ラムダの本体は式であり、コード ブロックではありません。ラムダ式にカプセル化できるロジックは限られています。例:

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

def で定義された関数をいつでも呼び出したい場合は、そのような関数オブジェクトに lambda function を割り当てることができます。

add2 = lambda x: x+2add2(10)
ログイン後にコピー

出力結果:

超使いやすい6つのPython組み込み関数を紹介

Lambda 関数を使用すると、コードを大幅に簡略化できます。別の例を次に示します。

超使いやすい6つのPython組み込み関数を紹介

上の図に示すように、ラムダ関数を使用した 1 行のコードで結果リスト newlist が生成されます。

マップ関数

map()この関数は、関数を入力リストのすべての要素にマップします。

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

たとえば、最初に大文字の入力単語を返す関数を作成し、次にこの関数をリスト colors 内のすべての要素に適用します。

def makeupper(word):
    return word.upper()colors=['red','yellow','green','black']colors_uppercase=list(map(makeupper,colors))colors_uppercase
ログイン後にコピー

さらに、匿名関数 lambda を使用して、map 関数と連携することもでき、より効率化できます。

colors=['red','yellow','green','black']colors_uppercase=list(map(lambda x: x.upper(),colors))colors_uppercase
ログイン後にコピー

Map 関数を使用しない場合は、for ループを使用する必要があります。

超使いやすい6つのPython組み込み関数を紹介

上図に示すように、実際に使用すると、Map 関数は要素を順番に列挙する for ループ方式に比べて 1.5 倍高速になります。

Reduce 関数

reduce() は、リストに対して計算を実行して結果を返す必要がある場合に非常に便利な関数です。たとえば、整数のリストのすべての要素の積を計算する必要がある場合は、reduce 関数を使用できます。 [1]

この関数との最大の違いは、

reduce() のマッピング関数 (関数) が 2 つのパラメーターを受け取るのに対し、map は 1 つのパラメーターを受け取ることです。

reduce(function, iterable[, initializer])
ログイン後にコピー
次に、例を使用して、

reduce() のコード実行プロセスを示します。

from functools import reducedef add(x, y) :   # 两数相加
    return x + y
numbers = [1,2,3,4,5]sum1 = reduce(add, numbers)   # 计算列表和
ログイン後にコピー
結果の取得

sum1 = 15

reduce が加算関数

add() をリスト [1 ,2] に適用することがわかります。 ,3,4,5]、マッピング関数は 2 つのパラメーターを受け取ります。reduce()結果はリストの次の要素とともに累積され続けます

さらに、

匿名関数 lambda を使用して、reduce 関数と連携することもでき、より合理化できます。

from functools import reducenumbers = [1,2,3,4,5]sum2 = reduce(lambda x, y: x+y, numbers)
ログイン後にコピー
出力

sum2= 15を取得します。これは前の結果と一致します。

注: Python 3.x 以降、

reduce() は functools モジュール [2] に移動されました。これを使用したい場合は、# を使用する必要があります。 ##from functools import reduce Import.

enumerate function

enumerate()

この関数は、走査可能なデータ オブジェクト (次のような) を変換するために使用されます。リスト、タプル、または文字列) はインデックス シーケンスに結合され、データとデータ添字を同時にリストし、通常は for ループで使用されます。その構文は次のとおりです: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">enumerate(iterable, start=0)</pre><div class="contentsignin">ログイン後にコピー</div></div> 2 つのパラメータ、1 つはシーケンス、イテレータ、または反復をサポートするその他のオブジェクトで、もう 1 つは添え字の開始位置であり、デフォルトでは 0 から始まります。カウンタの開始番号を定義してから使用されます。

colors = ['red', 'yellow', 'green', 'black']result = enumerate(colors)
ログイン後にコピー

色を格納するカラーリストがある場合、実行後に列挙オブジェクトを取得します。 forループ内で直接使用することも、リストに変換して使用することもできますが、具体的な使い方は以下の通りです。

for count, element in result:
    print(f"迭代编号:{count},对应元素:{element}")
ログイン後にコピー

超使いやすい6つのPython組み込み関数を紹介Zip 関数

zip()

この関数は、反復可能なオブジェクトをパラメータとして受け取り、対応する要素を追加するために使用されます。オブジェクト内でそれをタプルにパックし、これらのタプルで構成されるリストを返します [3]。 デモ例として 2 つのリストを引き続き使用します:

colors = ['red', 'yellow', 'green', 'black']fruits = ['apple', 'pineapple', 'grapes', 'cherry']for item in zip(colors,fruits):
    print(item)
ログイン後にコピー

出力結果:

超使いやすい6つのPython組み込み関数を紹介

zip() を使用する場合

関数では、各反復子の要素数が一致しない場合、返されるリストの長さは最も短いオブジェクトと同じになります。 rreeee

Filter 函数

filter()函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表,其语法如下所示[4]。

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

比如举个例子,我们可以先创建一个函数来检查单词是否为大写,然后使用filter()函数过滤出列表中的所有奇数:

def is_odd(n):
    return n % 2 == 1old_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    new_list = filter(is_odd, old_list)print(newlist)
ログイン後にコピー

输出结果:

超使いやすい6つのPython組み込み関数を紹介


今天分享的这6个内置函数,在使用 Python 进行数据分析或者其他复杂的自动化任务时非常方便。

推荐学习:python视频教程

以上が超使いやすい6つのPython組み込み関数を紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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