この記事では、Pythonにおいてlambda式とリストの組み合わせによる処理について解説します。具体的なコード例とその詳細な解説、さらには応用例を3つ以上紹介します。
目次
はじめに:lambda式とは
lambda式(ラムダ式)は、Pythonなどのプログラミング言語で使われる無名関数です。つまり、一度しか使用しないような短い関数を、名前をつけずに作成する方法です。
基本形
lambda式の基本形は次の通りです。
lambda 引数: 処理
具体例
例えば、引数に2を加算するlambda式は以下のようになります。
add_two = lambda x: x + 2
リストとの組み合わせ
Pythonのリストとlambda式は、`map`や`filter`といった関数と組み合わせることで、非常に強力な処理が可能です。
map関数との組み合わせ
`map`関数は、リストの全ての要素に対して指定した関数を適用します。
numbers = [1, 2, 3]
add_two = lambda x: x + 2
new_numbers = list(map(add_two, numbers))
print(new_numbers) # Output: [3, 4, 5]
filter関数との組み合わせ
`filter`関数は、リストから特定の条件に合致する要素だけを抽出します。
numbers = [1, 2, 3, 4, 5]
is_even = lambda x: x % 2 == 0
even_numbers = list(filter(is_even, numbers))
print(even_numbers) # Output: [2, 4]
応用例
例1: 文字列のリストを整形
以下の例では、文字列のリストを大文字に変換します。
words = ['apple', 'banana', 'cherry']
capitalize = lambda x: x.upper()
new_words = list(map(capitalize, words))
print(new_words) # Output: ['APPLE', 'BANANA', 'CHERRY']
例2: 複数のリストを同時に処理
複数のリストの要素を一気に処理する方法です。以下の例では、2つのリストの要素を足し合わせています。
a = [1, 2, 3]
b = [4, 5, 6]
add_elements = lambda x, y: x + y
result = list(map(add_elements, a, b))
print(result) # Output: [5, 7, 9]
例3: ネストしたリストの平坦化
以下の例では、ネストしたリストを平坦化しています。
from functools import reduce
nested_list = [[1, 2], [3, 4], [5, 6]]
flatten = lambda x, y: x + y
flat_list = reduce(flatten, nested_list)
print(flat_list) # Output: [1, 2, 3, 4, 5, 6]
まとめ
lambda式とリストの組み合わせは、Pythonで高度なデータ処理を行う際に非常に有用です。特に`map`や`filter`といった関数との相性が良いため、これらの技術をマスターすることで、より効率的なコードが書けるようになるでしょう。
コメント