ソートを行う関数sortedには、引数に評価を行う関数を指定することが出来ます。
文字列リストを数値として評価してソートする例。
>>> data = ('002', '01', '03')
>>> sorted(data)
['002', '01', '03']
数値に変換して評価する関数を作成します。
>>> def int_sort(a,b):
... return cmp(int(a),int(b))
評価関数を指定してソートすると、数値としてソートすることが出来ます。
>>> sorted(data, cmp=int_sort)
['01', '002', '03']
評価関数が短ければlambdaを使うと、簡潔に書けます。
>>> sorted(data, cmp=lambda x,y: cmp(int(x),int(y)))
sortedの引数keyは、比較する前に実行する関数を受け取ります。
要素にint関数を適用した結果で、比較します。
>>> sorted(data, key=int)
['01', '002', '03']