2012-11-10 45 views
1

我想按升序排列未知值的列表,无论是整数或浮点数还是两者。即[2,-1,1.0]将变成[-1,1.0,2]。不幸的是,sorted()函数似乎不起作用,因为它似乎按绝对值的降序排序。有任何想法吗?使用负值和正值对整数和浮点数列表进行排序?

+0

['sorted([2,-1,1.0])'yield'[-1,1.0,2]'](http://ideone.com/j0937A)。你的问题是什么? – Johnsyweb

回答

1

我有同样的问题。答案是:如果Python将它们作为字符串,它将按绝对值对数字进行排序。所以作为你的关键,确保包含一个int()或float()参数。我的工作是语法

数据=排序(数据,键=拉姆达X:浮置(X [0]))

...拉姆达X部分只是给其输出要排序的东西的功能通过。因此,它在我的列表中占据了一行,找到了float 0th元素,并按此排序。

+0

为了扩大你的答案,“2”和“2”的区别在于一个是整数,另一个是字符串。字符串包含数字的事实不会改变它的排序方式,因为字符串按照字典顺序排列(就像在字典中一样),所以'-2'<'-5'(因为'' - '==' - ' '和'2''''')。另一方面,整数按价值排序。 – Blender

相关问题