2016-04-19 9 views

答えて

1

使用Pythonのlambdasorted機能が内蔵され、かつ整数として結果をキャスト。

sorted_list = sorted(unsorted_iterable, lambda x, y: int(x.weight - y.weight))

+0

これは機能しません。値を 'int'にキャストすると' 0.5'と '-0.5'の両方が' 0'に切り捨てられ、その重さの差が '1'より小さい場合は' x'と 'y'を等しく扱います。浮動小数点でデフォルトの比較を使うために組み込みの 'cmp'関数を使うことも考えられますが、最も適切な解決法は' sorted'のキーワード引数 'key'を使います。 [(ドキュメントを参照)](https://docs.python.org/2.7/library/functions.html#sorted) –

関連する問題