列表排序
本帖最后由 青出于蓝 于 2022-7-29 09:58 编辑sorted(t, key=len)
['Pen', 'Book', 'FishC', 'Apple', 'Banana']
为什么结果中FishC在Apple前边长度不都是一样的吗 sorted使用的是快速排序,快速排序不稳定,顺序也不稳定 因为原列表中‘Fishc’相对于'Apple'位置更靠前
p.s 发代码最好用代码样式 青出于蓝 发表于 2022-7-29 09:57
因为原列表中‘Fishc’相对于'Apple'位置更靠前
p.s 发代码最好用代码样式
原代码是
t = ["FishC", "Apple", "Book", "Banana", "Pen"]
sorted(t)
sorted(t, key=len)
在第二行的时候就已经排序完了,这时apple在fishc前边的
梦回凡尘几寸欢 发表于 2022-7-29 10:03
原代码是
t = ["FishC", "Apple", "Book", "Banana", "Pen"]
sorted(t)
>>> sorted(t)
['Apple', 'Banana', 'Book', 'FishC', 'Pen']
>>> t
['FishC', 'Apple', 'Book', 'Banana', 'Pen']
sorted函数不会改变原列表!
所以fishc还是在apple之前 青出于蓝 发表于 2022-7-29 10:04
sorted函数不会改变原列表!
所以fishc还是在apple之前
奥奥明白了 也就是说sorted(t,key=len)处理的还是原来的t,忘了sorted是生成一个新的列表这个事了
页:
[1]