文字列として数字を格納したリストのsort()

>>> list = ["10", "100", "2", "30", "1", "9", "600"]
>>> list
['10', '100', '2', '30', '1', '9', '600']
>>> list.sort()
>>> list
['1', '10', '100', '2', '30', '600', '9']

文字コード順にソートされるので、昇順になることを期待してもそうはならない。
昇順に並べるための方法のひとつとしては、keyを指定すること。

>>> list.sort(key = int)
>>> list
['1', '2', '9', '10', '30', '100', '600']
>>> 

もちろん、リスト内に小数を含む値が入っている場合は気をつける。

>>> list = ["0.5", "1", "30", "2.1", "10", "10.0"]
>>> list
['0.5', '1', '30', '2.1', '10', '10.0']
>>> list.sort()
>>> list
['0.5', '1', '10', '10.0', '2.1', '30']
>>> list.sort(key = int)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '0.5'
>>> list.sort(key = float)
>>> list
['0.5', '1', '2.1', '10', '10.0', '30']
>>> 

基本だけど、うっかり忘れてた。