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) # アンパック
# タプルのリストをタプルの2番目でソート
a = [(1, 'kuma'), (2, 'neko'), (3, 'inu')]
a.sort(key=lambda pair: pair[1])
a
[(3, 'inu'), (1, 'kuma'), (2, 'neko')]