【发布时间】:2011-03-26 11:05:59
【问题描述】:
我知道这听起来微不足道,但我没有意识到 Python 的 sort() 函数很奇怪。我有一个实际上是字符串形式的“数字”列表,所以我首先将它们转换为整数,然后尝试排序。
list1=["1","10","3","22","23","4","2","200"]
for item in list1:
item=int(item)
list1.sort()
print list1
给我:
['1', '10', '2', '200', '22', '23', '3', '4']
我想要的是
['1','2','3','4','10','22','23','200']
我已经查看了一些与排序数字集相关的算法,但我发现的所有算法都涉及排序字母数字集。
我知道这可能是一个简单的问题,但 google 和我的教科书并没有提供比 .sort() 函数更多或更少有用的东西。
【问题讨论】:
-
请注意,您的 for 循环并没有像我怀疑的那样做。
-
您从未更新过
list1。是什么让您认为list正在更新? -
当 list1 = ['1', '1.10', '1.11', '1.1', '1.2'] 作为输入提供时会出现类似的问题。我没有得到 ['1', '1.1', '1.2', '1.10', '1.11'] 的输出,而是得到 ['1', '1.1', '1.10', '1.11', '1.2' ]
-
在 python 3 中你可能想使用
sorted(mylist)