Я знаю, что подобные вопросы задавались уже несколько раз. И теперь я использую функцию поиска, но она по-прежнему не работает.
Итак, вот настройка проблемы. У меня есть список списков, содержащих строки. Один столбец содержит строки, которые фактически представляют значения float. И это также столбец, который я хочу сортировать. Проблема в том, что python, кажется, игнорирует знак - (минус) на входах. Итак, список примеров:
[[blaa, '0.3', bli], [bla, '0.1', blub], [bla, '-0.2', blub]]
сортируется следующим образом:
[[bla, '0.1', blub], [bla, '-0.2', blub], [blaa, '0.3', bli]]
а не как это должно быть:
[[bla, '-0.2', blub],[bla, '0.1', blub], [blaa, '0.3', bli]]
До сих пор я пробовал:
- литье второго столбца для плавания и сортировка по этой колонке
как:
for i in mylist:
i[1] = float(i[1])
mylist.sort(key=lambda x: x[1])
или
for i in mylist:
i[1] = float(i[1])
mylist.sort(key=operator.itemgetter(1))
- Я также попытался определить свое собственное сравнение Функция:
как:
mylist.sort(cmp=lambda x,y: cmp(float(x), float(y)), key=operator.itemgetter(1))
И любая другая комбинация вышеуказанных методов, также то же самое с sorted
. До сих пор без успеха знак минус игнорируется каждый раз. Как это решить?
[править] И уже попробовал предложение Игнасио. Я должен упомянуть, что я должен использовать python 2.5.