59960


プログラミング初心者です。  
以下のコードで、sorted関数の引数keyでget_ageを指定しています。  
このときget_age関数の引数が明示されていませんが、これはdataの要素が引数になっているという解釈で良いでしょうか？

[code]

    data = [('Alice', 15), ('Bob', 21), ('Carol', 23)]
    
    def get_age(item):
        return item[1]
    
    data = sorted(data, key=get_age)
    
[/code]


CC BY-SA 4.0
2019-10-25T06:01:06.253
59959
2019-10-25T07:53:30.033
2019-10-25T07:53:30.033
19110
35328
question
python python3
sorted関数の引数について


# 短い答え

はい。

# 長い答え

`sorted` 関数のリファレンスを読んでみましょう。

> key には 1 引数関数を指定します。これは iterable の各要素から比較キーを展開するのに使われます (例えば、 key=str.lower
> のように指定します)。 デフォルト値は None です (要素を直接比較します)。  
>  [組み込み関数 — Python 3.8.0
> ドキュメント](https://docs.python.org/ja/3/library/functions.html#sorted)

と記載されている通り、 1引数関数である `get_age` が指定されています。このため、`sorted` は最初に渡された `iterable`
の各要素を `get_age` に渡していきます。

そして、 `get_age` が返す値（ここでは各要素の2番目の値、すなわち `15` 、 `21` 、 `23` ）を `sorted`
が比較することでソートを行います。


CC BY-SA 4.0
2019-10-25T06:16:06.860
59960
2019-10-25T06:16:06.860
29826
59959
answer