Python | sorted expected 1 argument, got 2 エラーの原因と解決策

2023-02-13Python エラー,Python

Python | sorted expected 1 argument, got 2 エラーの原因と解決策

Pythonの実行時に発生するエラー「sorted expected 1 argument, got 2」の原因と解決策について紹介しています。

TypeError: sorted expected 1 argument, got 2
タイプエラー:sortedに予想される第二引数が違う

確認環境

Windows11 ローカル
Python python-3.11.1

sorted expected 1 argument, got 2 エラーの原因

「sorted expected 1 argument, got 2」というPythonの実行エラーはsorted()関数にて第二引数に指定しているオプションの値が間違っていると発生するエラーです。

主に以下の原因が予想されます。

  • 第二引数に0や1が指定されている
  • 第二引数の値が文字列型で指定されている

例えば、以下のコードの場合、同エラーが出力されます。

data = [5, 1, 3, 4, 2] 
data2 = sorted(data, 1)

# TypeError: sorted expected 1 argument, got 2

sorted expected 1 argument, got 2 エラーの解決策

「sorted expected 1 argument, got 2」エラーの問題を解決するにはsorted()関数のオプション引数を正確なものを指定する。

sorted()関数のオプション引数はソートを逆順にする「reverse=True」が指定できます。

data = [5, 1, 3, 4, 2] 
data2 = sorted(data, 1)

# [5, 4, 3, 2, 1]

また、辞書(連想配列)などをソートする際にソートするキー名やキーの位置を無名関数「key=lambda …」で指定する事もあります。

data = [{'name': 'Apple', 'val': 100}, {'name': 'Banan', 'val': 50}, {'name': 'Pine', 'val': 150}]
data2 = sorted(data, key=lambda  x: x['val'])