Python3.6.3チュートリアル写経20171106
4.7.2 キーワード引数~4.7.5 ラムダ式をやった。
以下メモ
- 下記のような関数が書ける(argumentsは可変長引数、keywordsは可変長キーワード引数)
def cheeseshop(kind, *arguments, **keywords): print("-- Do you have any", kind, "?") print("-- I'm sorry, we're all out of", kind) for arg in arguments: print(arg) print("-" * 40) for kw in keywords: print(kw, ":", keywords[kw])
- リストをアンパックして関数に引数として渡せる(アンパックとは、リストの要素を前から順番に、仮引数に渡すこと)
def person(name, age): print(name, 'is', age, 'years old.') p = ['taro', 20] person(*p) # アンパック
- 辞書をアンパックして関数に引数として渡せる(このときは、キーワードを指定して引数をに値を渡していると考えられる)
def person(name, age): print(name, 'is', age, 'years old.') p = {'name': 'taro', 'age': 20} person(**p) # アンパック
- ラムダ式は、「lambda x: x + 1」という記法
# タプルのリストをタプルの2番目でソート a = [(1, 'kuma'), (2, 'neko'), (3, 'inu')] a.sort(key=lambda pair: pair[1]) a [(3, 'inu'), (1, 'kuma'), (2, 'neko')]