Python 如何对版本列表进行排序?

Python 如何对版本列表进行排序?,python,python-2.7,Python,Python 2.7,我有一个方法可以列出计算机上应用程序的一些版本,下面的列表采用这种格式,内容为字符串: ['1.15.1.23','1.10.1.34','1.9.2.3',…] 当我调用sorted(mylist)时,输出似乎没有对某些项目进行排序,我得到以下结果: ['1.15.1.51','1.15.1.9','1.15.2.11','1.15.2.6'] 我做错了什么?我期望输出为: ['1.15.1.9','1.15.1.51','1.15.2.6','1.15.2.11'] 为排序功能提供键:

我有一个方法可以列出计算机上应用程序的一些版本,下面的列表采用这种格式,内容为字符串:

['1.15.1.23','1.10.1.34','1.9.2.3',…]
当我调用
sorted(mylist)
时,输出似乎没有对某些项目进行排序,我得到以下结果:

['1.15.1.51','1.15.1.9','1.15.2.11','1.15.2.6']
我做错了什么?我期望输出为:

['1.15.1.9','1.15.1.51','1.15.2.6','1.15.2.11']

排序功能提供

sorted(mylist, key=lambda v: map(int, v.split('.')))

字符串是逐字符比较的,因此
'10'
位于
'2'
之前。感谢您用一个不起作用的解决方案来结束我的问题=)它工作得很好。哈哈,
list.sort()
不起作用,导入一个外部库对列表进行排序真的很有必要吗?!好吧,好吧,你说得对。它确实有效,你一定没有正确使用它。但是不要试图去学习,而是继续发表粗鲁的帖子。你有没有尝试过
mylist.sort(key=…)
?因为这会对列表进行适当排序并返回
None
sorted
肯定会返回结果。另一种解决方案不起作用,使用
sorted
(编辑后)效果很好,谢谢。