本記事について
この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。
無名関数:lambda
- 1つの分で表現する無名関数
- 普通簡単に表せる関数に使う
- あまり繰り返して使わない関数に使う(基本使い捨て)
# 普通の関数
def square(x):
return x**2
# 二乗のリスト
sq = [square(x) for x in range(10)]
print(sq)
- squareの関数をmap関数で導入すると
- 名前 = lambda 引数, 引数, ... : 式
sq = list(map(square, range(10)))
print(sq)
# 同じことにlambdaを使うと簡潔になる
sq = list(map(lambda x: x**2, range(10)))
print(sq)
# もっと簡潔に、直接内包表記を使う
sq = [x**2 for x in range(10)]
print(sq)
- lambdaをfilter()関数で導入すると条件でフィルターすることができる
# 偶数のリスト
even = list(filter(lambda x: x % 2 == 0, range(20)))
print(even)
# Pythonらしいのは、ifを使う
even = [x for x in range(20) if x % 2 == 0]
print(even)
- lambdaがもっとも役に立つのはソートするときのキーを設定すること
# Name, grade, age
students = [('としき', 'A', 4), ('あっきー', 'B', 10), ('さぶろう', 'B', 6)]
# sort by name
students.sort(key=lambda x: x[0])
print(students)
# sort by grade, age
students.sort(key=lambda x: (x[1], x[2]))
print(students)
# sort by age
students.sort(key=lambda x: x[2])
print(students)
参考