我知道类似的问题已经问过好几次了。现在我知道了如何使用搜索功能,但仍然不起作用。
这里是问题设置。我有一个包含字符串的列表。一列包含实际表示浮点值的字符串。这也是我想排序的列。问题是,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
相同。到目前为止还没有成功,负号每次都会被忽略。如何解决这个问题?
[编辑] 也已经尝试了伊格纳西奥的建议。我应该提到我必须使用Python2.5。
我的工作很好,Python 3.1.2:
和2.6.5:
相关问题 更多 >
编程相关推荐