我是编程新手,我不知道如何正确地完成这项工作。我正在尝试使用第二个值对下面的元组列表进行排序,我需要对它们进行排序,就像它们是整数一样:
[u'value3', '5,423']
[u'value', '1,389']
[u'value1', '3,385']
[u'anothervalue', '2,789']
[u'value2', '430']
现在我有这个:
sortedList= sorted(listToSort, key=lambda x: (x[1]))
结果我得到了这个:
[u'value', '1,389']
[u'anothervalue', '2,789']
[u'value1', '3,385']
[u'value2', '430']
[u'value3', '5,423']
但我需要它更像:
[u'value3', '5,423']
[u'value1', '3,385']
[u'anothervalue', '2,789']
[u'value', '1,389']
[u'value2', '430']
或按升序排列,无所谓。 任何帮助表示赞赏。
答案 0 :(得分:2)
您需要以下内容:
sortedList = sorted(listToSort, key=lambda x: int(x[1].replace(',', '')), reverse=True)
编辑:原始答案确实在降序,编辑为升序
答案 1 :(得分:0)
如果你的值是逗号为千位分隔符的整数,你应该这样做:
sortedList = sorted(listToSort, key=lambda x: int(x[1].replace(",", "")))
如果你的值是浮点数:
sortedList = sorted(listToSort, key=lambda x: float(x[1].replace(",", ".")))
或者您可以将正确的区域设置设置为不使用replace
: