Pythonのmap()関数と例

Python map() は、入力として与えられたイテレータのすべての項目に関数を適用します。 たとえば、反復子はリスト、タプル、セット、辞書、文字列であり、反復可能なマップ オブジェクトを返します。 Pythonのmap()は組み込み関数です。

構文

map(function, iterator1,iterator2 ...iteratorN)

計測パラメータ

ここで重要なことが XNUMX つあります

  • function: マップに指定する必須の関数。イテレータ内で使用可能なすべての項目に適用されます。
  • iterator: 反復可能な必須オブジェクト。 リスト、タプルなどを指定できます。複数のイテレータ オブジェクトを map() 関数に渡すことができます。

戻り値

map() 関数は、イテレータ内のすべての項目に指定された関数を適用し、タプルやリストなどの反復可能なマップ オブジェクトを返します。

map() 関数はどのように機能するのでしょうか?

map() 関数は、関数と反復可能なオブジェクトとして XNUMX つの入力を受け取ります。 map() に指定される関数は通常の関数であり、指定された反復可能オブジェクトに存在するすべての値を反復処理します。

たとえば、数値のリストがあり、各数値の XNUMX 乗を求めたいとします。

出力を取得するには、指定された数値の 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 変数に保存されます。

Python 組み込み関数での map() の使用

Python map() 関数は組み込み関数であり、Python で利用可能な他の組み込み関数と一緒に使用することもできます。 この例では、指定された値を四捨五入する Pythonround() 組み込み関数を使用します。

例:

私が持っているリストは 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!

数値リストでのmap()の使用

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 のオブジェクトです。 brackets。この例では、文字列値を含むタプルを取り上げます。ここで使用する関数は、指定された値を大文字に変換します。

例:

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 の辞書 カーリーを使用して作成されています brackets({})。辞書は反復子であるため、map() 関数内で使用できます。次に、map() 関数内の反復子として辞書を使用してみましょう。

Following 例は、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 のセットは、カーリー形式の項目の順序付けされていないコレクションです。 brackets(())。 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()を使用する

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 のオブジェクトです。 brackets。この例では、文字列値を含むタプルを受け取ります。ここで使用する関数は、指定された値を大文字に変換します。
  • Python の辞書は、curly を使用して作成されます brackets({})。辞書は反復子であるため、map() 関数内で使用できます。
  • Python のセットは、カーリー形式の項目の順序付けされていないコレクションです。 brackets(())。 set() はイテレータでもあるため、map() 関数内で使用できます。
  • Python では、ラムダ式 (またはラムダ形式) を利用して匿名関数を構築します。 したがって、map() 内で lambda を使用する場合は、lambda キーワードを使用する必要があります。
  • 複数のイテレータ、つまりリストやタプルを map() 関数に送信できます。