私はPythonを初めて使用し、次のタプルのリストを並べ替えようとしています。
>>> str
[('991', 'Shantell'), ('992', 'Cherish'), ('993', 'Linsey'), ('994', 'Hali'), ('995', 'Tarah'), ('996', 'Annemarie'), ('997', 'Asha'), ('998', 'Jada'), ('999', 'Leila'), ('1000', 'Peggy')]
タプルの最初の値に基づいてソートしたいのですが、残念ながら、各タプルの最初の値は文字列であり、整数ではありません。私はこれを行うキー関数を作成できることを知っています:
def digit_key(t):
return (int(t[0]))
次に、次のように並べ替えて呼び出します。
>>> sorted(str,key=digit_key)
[('991', 'Shantell'), ('992', 'Cherish'), ('993', 'Linsey'), ('994', 'Hali'), ('995', 'Tarah'), ('996', 'Annemarie'), ('997', 'Asha'), ('998', 'Jada'), ('999', 'Leila'), ('1000', 'Peggy')]
ソートする前に常にキー関数を定義する必要がありますか?2つの関数を定義せずにこのコードを書くためのより良い方法はありますか?私は次のことを試みましたが失敗しました:
>>> sorted(str,key= int(str[0][0]))
Traceback (most recent call last):
File "<pyshell#1112>", line 1, in <module>
sorted(str,key= int(str[0][0]))
TypeError: 'int' object is not callable