python数组排序sort_详解python中sort排序使用
1.前言
昨天一學妹問我一個關(guān)于python的問題,當時在外忙碌,沒時間細看。今天看一下,咋一看我還真的不知道這個問題,bookinfo.sort(reverse=True ,key=lambda x:(x[1],x[1]/x[2]))是如何排序的。但是我猜測應該是按照第二個元素排序,如果第二個元素相同,就按照第二個元素和第三個元素的比值排序。猜測歸猜測,自己就去測試了一下。過程如下。
2.環(huán)境準備
系統(tǒng):win10
python版本:3.6
3.程序?qū)崿F(xiàn)
為了滿足實驗要求,就設(shè)置幾個第二個元素相同的數(shù)據(jù)如:擺渡人
bookinfo=[('不一樣的卡梅拉(全套)',22.50,120),('零基礎(chǔ)學Android',65.10,89.80),
('擺渡人',23.40,36.00),('福爾摩斯探案全集8冊',22.50,128),('不一樣的卡梅拉(全套)',22.50,100),('擺渡人',23.40,40.00)]
bookinfo.sort(key=lambda x:(x[1],x[1]/x[2]))
for temp in bookinfo:
print(temp,"x[1]/x[2]:",temp[1]/temp[2])
程序運行后的結(jié)果是:
('福爾摩斯探案全集8冊', 22.5, 128) x[1]/x[2]: 0.17578125
('不一樣的卡梅拉(全套)', 22.5, 120) x[1]/x[2]: 0.1875
('不一樣的卡梅拉(全套)', 22.5, 100) x[1]/x[2]: 0.225
('擺渡人', 23.4, 40.0) x[1]/x[2]: 0.585
('擺渡人', 23.4, 36.0) x[1]/x[2]: 0.6499999999999999
('零基礎(chǔ)學Android', 65.1, 89.8) x[1]/x[2]: 0.7249443207126949
[Finished in 0.2s]
4.sort拓展
在使用sort函數(shù)的時候需要注意的是:該函數(shù)會修改原來的數(shù)組,不會返回新的數(shù)組。
如果想使用逆序則可以:bookinfo.sort(reverse=True,key=lambda x:(x[1],x[1]/x[2]))
key這個屬性后的x是任意的,自定義的,代表當前的元素的內(nèi)容。
以上所述是小編給大家介紹的python中sort排序使用詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的python数组排序sort_详解python中sort排序使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux关机_Linux中shutdo
- 下一篇: 大数据 深度 分页_机器学习、深度学习、