Python のマップとは何を意味しますか?
map 関数のプロトタイプは map(function, iterable, ...) であり、その戻り結果はリストです。
パラメータ関数は関数名を渡します。関数名は Python に組み込むことも、カスタマイズすることもできます。
パラメータ iterable は、リスト、タプル、文字列などの反復可能なオブジェクトを渡します。
この関数の意味は、関数を iterable の各要素に適用し、結果をリストの形式で返すことです。 iterable の後に楕円があることに気づきましたか? これは、多くの iterable を渡すことができることを意味します。追加の iterable パラメーターがある場合、要素はこれらのパラメーターから並行して取得され、関数が呼び出されます。 1 つの反復可能なパラメーターが別の反復可能なパラメーターより短い場合、パラメーター要素は None で拡張されます。理解するために例を見てみましょう!
a=(1,2,3,4,5) b=[1,2,3,4,5] c="zhangkang" la=map(str,a) lb=map(str,b) lc=map(str,c) print(la) print(lb) print(lc)
出力:
['1', '2', '3', '4', '5'] ['1', '2', '3', '4', '5'] ['z', 'h', 'a', 'n', 'g', 'k', 'a', 'n', 'g']
str() は Python の組み込み関数です。この例では、リスト/タプル/文字列の各要素を str 型に変換し、リストのフォームリターンを使用します。もちろん、カスタム関数を渡すこともできます。以下の例を参照してください。
def mul(x): return x*x n=[1,2,3,4,5] res=map(mul,n)
出力: [1, 4, 9, 16, 25]
リスト n の各要素に対して mul 関数を 1 回実行した後に得られた結果が、最終的な要素として使用されます。結果リスト。複数の反復可能なパラメーターを使用した状況を見てみましょう。
def add(x,y,z): return x+y+z list1=[1,2,3] list2=[1,2,3] list3=[1,2,3] res=map(add,list1,list2,list3) print(res)
出力: [3, 6, 9]
3 つのリストのそれぞれから要素を並行して削除し、追加関数を実行します。 3 つのリストは異なりますか? はい、前述したように、短い反復可能なパラメーターには None が設定されます。上記の例で list3=[1,2] の場合、add 関数の実行時に list3 の最後の要素には None が設定されますが、None と int 型の数値は比較できないため、このプログラムはエラーを報告します。 。つまりパラメータ関数がNoneの動作をサポートしていなければ全く意味がありません。次に、別の例を見てみましょう。
def add(x,y,z): return x,y,z list1 = [1,2,3] list2 = [1,2,3,4] list3 = [1,2,3,4,5] res = map(add, list1, list2, list3) print(res)
出力:
[(1, 1, 1), (2, 2, 2), (3, 3, 3), (None, 4, 4), (None, None, 5)]
関連する推奨事項: 「Python チュートリアル 」
以上がPythonでマップとは何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。