Я знаю, что подобные вопросы задавались уже несколько раз. И теперь я знаю, как использовать функцию поиска, но она все еще не работает.
Итак, вот постановка задачи. У меня есть список списков, содержащих строки. Один столбец содержит строки, которые фактически представляют значения с плавающей запятой. И это также столбец, по которому я хочу сортировать. Проблема в том, что 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))
like:
mylist.sort(cmp=lambda x,y: cmp(float(x), float(y)), key=operator.itemgetter(1))
И любая другая комбинация вышеуказанных методов, то же самое с sorted
. Пока безуспешно, знак минус каждый раз игнорируется. Как это решить?
[редактировать] Также уже пробовал предложение Игнасио. Я должен упомянуть, что я ДОЛЖЕН использовать python 2.5.