关于Python 3.x版本中列表sort()步骤的若干疑问
关于Python 3.x版本中列表sort()方法的若干疑问1.关于sort()方法的两个关键字参数:key和cmp不是太理解什么
关于Python 3.x版本中列表sort()方法的若干疑问
1.关于sort()方法的两个关键字参数:key和cmp不是太理解什么意思
2.关于下面的代码:
>>> x=['abc','abcd','aaa']
>>> x.sort(key=len)
>>> x
['abc', 'aaa', 'abcd']
>>>
>>> x=['abc','abcd','aaa']
>>> x
['abc', 'abcd', 'aaa']
>>> x=['abc','abcd','aaa']
>>> x.sort(key=len,reverse=True)
>>> x
['abcd', 'abc', 'aaa']
第一个x返回的为什么不是['aaa','abc','abcd']?
就是当aaa和abc两个len相同时,排列的一句依据是什么?
[解决办法]
说反了,python用的排序是稳定的,'abc'排在'aaa'之前是因为它们在原list中的次序就是这样的。
[解决办法]你指定key=len,就是比较len()之后的结果,其他排序顺序是由算法本身决定的,看python实现的是什么算法了,算法是否是稳定排序了。