我知道几次已经问过类似的问题了.我现在做了如何使用搜索功能,但它仍然无法正常工作.
所以这是问题设置.我有一个包含字符串的列表列表.一列包含实际表示浮点值的字符串.它也是我想要排序的列.问题是,python似乎忽略条目上的 - (减号)符号.所以一个示例列表:
[[blaa, '0.3', bli], [bla, '0.1', blub], [bla, '-0.2', blub]]
Run Code Online (Sandbox Code Playgroud)
像这样排序:
[[bla, '0.1', blub], [bla, '-0.2', blub], [blaa, '0.3', bli]]
Run Code Online (Sandbox Code Playgroud)
而不是它应该如何:
[[bla, '-0.2', blub],[bla, '0.1', blub], [blaa, '0.3', bli]]
Run Code Online (Sandbox Code Playgroud)
到目前为止我尝试过:
喜欢:
for i in mylist:
i[1] = float(i[1])
mylist.sort(key=lambda x: x[1])
Run Code Online (Sandbox Code Playgroud)
或者
for i in mylist:
i[1] = float(i[1])
mylist.sort(key=operator.itemgetter(1))
Run Code Online (Sandbox Code Playgroud)
喜欢:
mylist.sort(cmp=lambda x,y: cmp(float(x), float(y)), key=operator.itemgetter(1))
Run Code Online (Sandbox Code Playgroud)
和上述方法的任何其他组合,也一样sorted.到目前为止,没有成功,每次都会忽略减号.怎么解决这个?
[编辑] 也已经尝试过Ignacio的建议.我应该提到我必须使用python 2.5.
Ign*_*ams 19
l = [["blaa", "0.3", "bli"], ["bla", "0.1", "blub"], ["bla", "-0.2", "blub"]]
l.sort(key=lambda x: float(x[1]))
>>> [['bla', '-0.2', 'blub'], ['bla', '0.1', 'blub'], ['blaa', '0.3', 'bli']]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14648 次 |
| 最近记录: |