# map()の使い方

HomeFunctions

# map()の例1

def myfunc(n):
  return len(n)
x = map(myfunc, ('apple', 'banana', 'cherry'))
for y in x:
  print(y)

# map()の定義と使い方

map()関数は、反復可能な各アイテムに対して指定された関数を実行します。アイテムはパラメータとして関数に送信されます。

map()は、リストのような複数の要素をもったオブジェクトと関数を引数として受け取ります。そしてシーケンスの各要素を、受け取った関数に渡して実行してくれます。このように関数を受け取る関数や関数を返す関数を高階関数と呼びます。

# map()関数の書き方

map(function, iterables)

# map()の引数

function: 必須。 項目ごとに実行する機能

iterable:必須。シーケンス、コレクション、またはイテレータオブジェクト。イテレブルはいくつでも送ることができますが、関数がイテレブルごとに1つのパラメーターを持っていることを確認してください。

# map()の例2

def myfunc(a, b):
    return a + b
x = map(myfunc, ('apple', 'banana','cherry'), ('orange', 'lemon', 'pineapple'))
for y in x:
  print(y)

# Python3でのmap()の変更点

map()は、リストなどの各要素に処理を適用する組み込み関数。

map(function, iterable, ...)

functionを、結果を返しながらiterableの全ての要素に適用するイテレータを返します。 Python2まではリストを返すようになっていたが、Python3ではイテレータを返すようになりました。

# リストを取得する方法

リストがほしいときはlist()で囲む。map()ではなくリスト内包表記を使ってもいい。

i = '1 2 3'
print(map(int, i.split(' ')))
# <map object at 0x1073d5588> マップオブジェクト
print(list(map(int, i.split(' '))))
# [1, 2, 3]
print([int(x) for x in i.split(' ')])
# [1, 2, 3]

リストの各要素をsplit()で分割してからint()で整数に変換する例を示します。

i2 = ['1 2 3', '4 5 6', '7 8 9']
input_array = []
for data in i2:
    input_array.append(list(map(int, data.split(' '))))
    # リスト内包表記
    # input_array.append([int(x) for x in data.split(' ')])
print(input_array)
# [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

HomeFunctions