Map 関数
CoddyのPythonジャーニー「Logic & Flow」セクションの一部。レッスン 72/78。
map()関数は、主に2つのものを受け取ります:
- 関数(何をするかの指示を含むもの)
- 項目のシーケンス(リストや要素のコレクションなど)
次に、その function をシーケンス内の各項目に1つずつ適用し、すべての結果を返します。
例えば:
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]ここで起こったこと:
- numbers の list があります:[1, 2, 3, 4, 5]
map()関数は、各 numbers を一度に 1 つずつ受け取ります- 各 numbers を
square関数に渡します - すべての結果を順番に収集します
組み立てラインのように考えることができます:
- 数字 1 が入る → square 関数がそれを 1 にする
- 数字 2 が入る → square 関数がそれを 4 にする
- 数字 3 が入る → square 関数がそれを 9 にする、以下同様...
別の関数を定義する代わりに、lambda function も使用できます。
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 という名前の関数を作成してください。この関数では、lambda 関数と map() 関数を使用して、リスト内の各文字列を大文字に変換します。この関数は、大文字に変換された文字列を含むリストを返す必要があります。
自分で試してみよう
def convert_to_uppercase(strings):
# map() と lambda 関数を使用して文字列を大文字に変換する
# 下の空のリストをその式で置き換える
uppercase_strings = []
# 大文字の文字列のリストを返す
return list(uppercase_strings)このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
Logic & Flowのすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ