Python 例付きの map() 関数
Python map() は、入力として与えられた反復子のすべての項目に関数を適用します。反復子は、たとえば、リスト、タプル、セット、辞書、文字列などであり、反復可能なマップ オブジェクトを返します。 Python map() は組み込み関数です。
構文
map(function, iterator1,iterator2 ...iteratorN)
Parameters
ここで重要なことが XNUMX つあります
- function: マップに指定する必須の関数。イテレータ内で使用可能なすべての項目に適用されます。
- iterator: 反復可能な必須オブジェクト。 リスト、タプルなどを指定できます。複数のイテレータ オブジェクトを map() 関数に渡すことができます。
戻り値
map() 関数は、イテレータ内のすべての項目に指定された関数を適用し、タプルやリストなどの反復可能なマップ オブジェクトを返します。
map() 関数はどのように機能するのでしょうか?
map() 関数は、関数と反復可能なオブジェクトとして XNUMX つの入力を受け取ります。 map() に指定される関数は通常の関数であり、指定された反復可能オブジェクトに存在するすべての値を反復処理します。
たとえば、数字のリストがあり、それぞれの数字の平方を求めるとします。
出力を取得するには、指定された数値の XNUMX 乗を返す関数が必要です。 関数は次のようになります。
def square(n): return n*n
広場で見つけたいアイテムのリストは次のとおりです。
my_list = [2,3,4,5,6,7,8,9]
次に、python 組み込み関数の map() を使用して、my_list 内の各項目の XNUMX 乗を取得しましょう。
最終的なコードは次のとおりです。
def square(n): return n*n my_list = [2,3,4,5,6,7,8,9] updated_list = map(square, my_list) print(updated_list) print(list(updated_list))
出力:
<map object at 0x0000002C59601748> [4, 9, 16, 25, 36, 49, 64, 81]
map()関数の出力は、出力に示されているように、画面に表示されるマップオブジェクトです。 。
最終出力を取得するには、for ループまたは list() メソッドを使用してマップからの出力を反復する必要があります。 指定されたリスト内の値を表示するコードで list() を使用しました。
したがって、map() 関数を使用すると、各数値の 2,3,4,5,6,7,8,9 乗を取得できます。map に指定されたリストは [4] で、関数 square() を使用すると出力が得られます。 map() から取得した値は [9, 16, 25, 36, 49, 64, 81, XNUMX] です。
関数 map() は、リスト上のすべての項目に関数 square() を適用します。 たとえば、my_list 変数を使用すると、各数値の XNUMX 乗でリストが更新されます。 出力は updated_list 変数に保存されます。
map() の使用 Python 組み込み関数
Python map()関数は組み込み関数であり、他の組み込み関数と一緒に使用することもできます。 Pythonこの例では、 Python 指定された値を丸める組み込み関数 round()。
例:
私が持っているリストは my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907] です。
リスト内の各項目の四捨五入された値が必要です。 map() への関数としてround() を使用します。
my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907] updated_list = map(round, my_list) print(updated_list) print(list(updated_list))
出力:
<map object at 0x000000E65F901748> [3, 4, 4, 6, 6, 8, 8, 10]
Round() 関数はリスト内のすべての項目に適用され、出力に示されているようにすべての値が丸められたリストを返します。
文字列をイテレータとして指定したmap()の使用
文字列に対してmap()を使うこともできます。 Python文字列は配列のように動作するため、map() 内で簡単に使用できます。
この例には、指定された文字列を大文字に変換する関数 myMapFunc() があります。 関数 myMapFunc () は、map() 関数に与えられます。map 関数は、文字列を myMapFunc() に渡すことによって、与えられた文字列を大文字に変換します。
def myMapFunc(s): return s.upper() my_str = "welcome to guru99 tutorials!" updated_list = map(myMapFunc, my_str) print(updated_list) for i in updated_list: print(i, end="")
出力:
<map object at 0x000000DF2E711748> WELCOME TO GURU99 TUTORIALS!
listof での map() の使用 Numbers
map() のリストを操作するには、数値のリストを取得し、リスト内の各数値を 10 倍にします。
使用するリストは [2,3,4,5,6,7,8,9] です。 関数 myMapFunc () は、指定された数値に 10 を乗算します。この関数は、リストとともにマップするために指定されます。
例:
def myMapFunc(n): return n*10 my_list = [2,3,4,5,6,7,8,9] updated_list = map(myMapFunc, my_list) print(updated_list) print(list(updated_list))
出力:
<map object at 0x000000EE2C061898> [20, 30, 40, 50, 60, 70, 80, 90]
表示される出力は、リスト内の各数値が
10を掛けます。
タプルでのmap()の使用
タプルは、 Python 項目がカンマで区切られ、丸括弧で囲まれています。例では、文字列値を含むタプルを取ります。使用する関数は、指定された値を大文字に変換します。
例:
def myMapFunc(n): return n.upper() my_tuple = ('php','java','python','c++','c') updated_list = map(myMapFunc, my_tuple) print(updated_list) print(list(updated_list))
出力:
<map object at 0x0000009C3C3A16A0> ['PHP', 'JAVA', 'PYTHON', 'C++', 'C']
取得する出力は、すべての値が大文字に変換されたタプルバックです。
辞書でのmap()の使用
A 辞書の Python 中括弧 ({}) を使用して作成されます。辞書はイテレータなので、map() 関数内で使用できます。次に、辞書を map() 関数内のイテレータとして使用してみましょう。
次の例は、map() 内の辞書イテレータの動作を示しています。
def myMapFunc(n): return n*10 my_dict = {2,3,4,5,6,7,8,9} finalitems = map(myMapFunc, my_dict) print(finalitems) print(list(finalitems))
出力:
<map object at 0x0000007EB451DEF0> [20, 30, 40, 50, 60, 70, 80, 90]
Set での map() の使用
セットイン Python 中括弧 (()) 内の項目の順序なしコレクションです。set() もイテレータなので、map() 関数内で使用できます。
これは、map() 内で set をイテレータとして使用する実際の例です。
def myMapFunc(n): return n*10 my_set = {2,3,4,5,6,7,8,9} finalitems = map(myMapFunc, my_set) print(finalitems) print(list(finalitems))
出力:
<map object at 0x000000AC8F05DEF0> [20, 30, 40, 50, 60, 70, 80, 90]
Lambda関数でmap()を使用する
In Pythonラムダ式は匿名関数の構築に利用されます。通常の関数を定義するために def を使用するのと同じように、lambda キーワードを使用する必要があります。
したがって、この例では、map() 内でラムダ関数を使用します。 ラムダ関数は、リスト内の各値を 10 で乗算します。
例:
my_list = [2,3,4,5,6,7,8,9] updated_list = map(lambda x: x * 10, my_list) print(updated_list) print(list(updated_list))
出力:
<map object at 0x000000BD18B11898> [20, 30, 40, 50, 60, 70, 80, 90]
map() 関数内での複数のイテレータの使用
例 1: XNUMX つのリスト反復子を map() に渡す
複数のイテレータ (リスト、タプルなど) を同時に map() 関数に送信できます。
たとえば、1 つのリストを追加したい場合です。 同じことは、map() 関数を使用して実行できます。 2 つのリスト my_listXNUMX と my_listXNUMX を使用します。
以下の例では、my_list1 の最初の項目が my_list2 の最初の項目に追加されます。 関数 myMapFunc() は、my_list1 と my_list2 の項目を受け取り、両方の合計を返します。
これは、map() 関数を使用して XNUMX つの指定されたリストを追加する実際の例です。
def myMapFunc(list1, list2): return list1+list2 my_list1 = [2,3,4,5,6,7,8,9] my_list2 = [4,8,12,16,20,24,28] updated_list = map(myMapFunc, my_list1,my_list2) print(updated_list) print(list(updated_list))
出力:
<map object at 0x0000004D5F751860> [6, 11, 16, 21, 26, 31, 36]
例 2: XNUMX つのタプルとリスト反復子を map() に渡す
map() 関数でリストとタプル反復子を使用します。 関数はマップに与えられます – myMapFunc() はリストとタプルから項目を取得します。 項目はアンダースコア(_)で結合されます。 動作例は以下のとおりです。
def myMapFunc(list1, tuple1): return list1+"_"+tuple1 my_list = ['a','b', 'b', 'd', 'e'] my_tuple = ('PHP','Java','Python','C++','C') updated_list = map(myMapFunc, my_list,my_tuple) print(updated_list) print(list(updated_list))
出力:
<map object at 0x00000059F37BB4E0> ['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']
まとめ
- Python map() は、入力として与えられた反復子のすべての項目に関数を適用する組み込み関数です。反復子は、たとえばリスト、タプル、文字列などであり、反復可能なマップ オブジェクトを返します。
- map() 関数は、イテレータ内のすべての項目に指定された関数を適用し、タプルやリストなどの反復可能なマップ オブジェクトを返します。
- Python map()関数は組み込み関数であり、他の組み込み関数と一緒に使用することもできます。 Python.
- タプルは、 Python 項目はカンマで区切られ、丸括弧で囲まれています。この例では、文字列値を含むタプルを受け取ります。使用する関数は、指定された値を大文字に変換します。
- の辞書 Python 中括弧({})を使用して作成されます。辞書はイテレータなので、map() 関数内で使用できます。
- セットイン Python 中括弧 (()) 内の項目の順序なしコレクションです。set() もイテレータなので、map() 関数内で使用できます。
- In Pythonラムダ式 (またはラムダ形式) は、匿名関数の構築に使用されます。したがって、map() 内でラムダを使用する場合は、lambda キーワードを使用する必要があります。
- 複数のイテレータ、つまりリストやタプルを map() 関数に送信できます。