Map 関数
CoddyのPythonジャーニー「Logic & Flow」セクションの一部 — レッスン 72/78。
map() 関数は、主に2つのものを受け取ります:
- 関数(何をするかの指示が含まれています)
- 項目のシーケンス(リストや要素のコレクションなど)
次に、その関数をシーケンスの各項目に一つずつ適用し、すべての結果を返します。
例えば:
def square(n):
return n * n
numbers = [1, 2, 3, 4, 5] # これは単なる数値のリストです
squared_numbers = map(square, numbers)
print(list(squared_numbers))
# 出力: [1, 4, 9, 16, 25]ここで何が起きたのか:
- 数値のリストがあります:[1, 2, 3, 4, 5]
map()関数が、各数値を一つずつ取り出します- それぞれの数値を
square関数に渡します - すべての結果を順番に収集します
それは組み立てラインのように考えることができます:
- 数値1が入る → square関数がそれを1にする
- 数値2が入る → square関数がそれを4にする
- 数値3が入る → square関数がそれを9にする、などなど...
別の関数を定義する代わりに、ラムダ関数を使用することもできます:
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda n: n * n, numbers)
print(list(squared_numbers))
# 出力: [1, 4, 9, 16, 25]map() 関数は、数値だけでなく、あらゆる項目のコレクションに対して動作します。文字列や、同じ方法で処理したい他のあらゆる種類のデータでも機能します。
チャレンジ
簡単引数として文字列のリスト strings を受け取る、convert_to_uppercase という名前の関数を作成してください。この関数は、map() 関数とラムダ関数を使用してリスト内の各文字列を大文字に変換し、大文字になった文字列を含むリストを返す必要があります。
チートシート
map() 関数は、シーケンスの各要素に関数を適用し、その結果を返します:
def square(n):
return n * n
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(square, numbers)
print(list(squared_numbers))
# 出力: [1, 4, 9, 16, 25]map() でラムダ関数を使用することもできます:
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda n: n * n, numbers)
print(list(squared_numbers))
# 出力: [1, 4, 9, 16, 25]map() 関数は、数値だけでなく、あらゆるデータ型で使用できます。
自分で試してみよう
def convert_to_uppercase(strings):
# map() とラムダ関数を使用して、文字列を大文字に変換します
uppercase_strings =
# 大文字に変換された文字列のリストを返します
return list(uppercase_strings)このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。