最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python3實現(xiàn)對列表按元組指定列進行排序的方法分析

 更新時間:2018年12月22日 14:32:13   作者:Xiao布_unknown  
這篇文章主要介紹了Python3實現(xiàn)對列表按元組指定列進行排序的方法,結合實例形式分析了Python3針對列表排序的常見操作技巧與注意事項,需要的朋友可以參考下

本文實例講述了Python3實現(xiàn)對列表按元組指定列進行排序的方法。分享給大家供大家參考,具體如下:

Python版本: python3.+
運行環(huán)境: Mac OS
IDE: pycharm

Python內建的排序方法

1 排序方法介紹

Python中有2個排序函數(shù),一個是list內置的sort()方法,另一個是全局的sorted()方法

sorted(iterable,key=None,reverse=False) #返回排好序的新列表,不改變對象本身,默認升序;reverse:-True降序 -False 正序對所有可迭代的對象均有效
list.sort(key=None,reverse=False) #將list自身進行排序,不返回新的list對象,默認升序;reverse:-True降序 -False 正序

2 基本的列表排序

1)list.sort()排序

data = [5, 7, 9, 3, -6, -7, -8, -9, 3, -8]
result = data.sort()
print(data) #結果為 [-9, -8, -8, -7, -6, 3, 3, 5, 7, 9]
print(result) #結果為None

2)sorted()排序

data = [5, 7, 9, 3, -6, -7, -8, -9, 3, -8]
result = sorted(data)
print(data) #結果為 [5, 7, 9, 3, -6, -7, -8, -9, 3, -8]
print(result) #結果為 [-9, -8, -8, -7, -6, 3, 3, 5, 7, 9]

3 以tuple作為list的元素

在默認情況下sort和sorted函數(shù)接收的參數(shù)是元組時,它將會先按元組的第一個元素進行排序再按第二個元素進行排序,再按第三個、第四個…依次排序。

我們通過一個簡單的例子來了解它,以下面這個list為例:

data = [(1, 'B'), (1, 'A'), (2, 'A'), (0, 'B'), (0, 'a')]

我們通過sorted()對它進行排序

data = [(1, 'B'), (1, 'A'), (2, 'A'), (0, 'B'), (0, 'a')]
result = sorted(data)
print(data) #結果為 [(1, 'B'), (1, 'A'), (2, 'A'), (0, 'B'), (0, 'a')]
print(result) #結果為 [(0, 'B'), (0, 'a'), (1, 'A'), (1, 'B'), (2, 'A')]

會發(fā)現(xiàn)排序后的結果中(0, 'B')在(0, 'a')的前面。這是因為在按元組第一個元素排好之后,將(0, 'B'), (0, 'a')再按第二個元素進行排序了,而'B'的ASCII編碼比'a'小,所以(0, 'B')就排在(0, 'a')的前面了。

那如何想要讓它排序時不分大小寫呢?

這就要用到sort方法和sorted方法里的key參數(shù)了。

我們來看一下具體的實現(xiàn):

data = [(1, 'B'), (1, 'A'), (2, 'A'), (0, 'B'), (0, 'a')]
#利用參數(shù)key來規(guī)定排序的規(guī)則
result = sorted(data,key=lambda x:(x[0],x[1].lower()))
print(data) #結果為 [(1, 'B'), (1, 'A'), (2, 'A'), (0, 'B'), (0, 'a')]
print(result) #結果為 [(0, 'a'), (0, 'B'), (1, 'A'), (1, 'B'), (2, 'A')]

其中的lambda x:(x[0],x[1].lower()可以理解為一個匿名函數(shù);

其功能類似于:

def fun(x)
  return(x[0],x[1].lower())

如果想要以字母作為第一排序規(guī)則,并且字母大小寫不敏感,該怎么實現(xiàn)?

這就能要運用到之前所講到的

在默認情況下sort和sorted函數(shù)接收的參數(shù)是元組時,它將會先按元組的第一個元素進行排序再按第二個元素進行排序,再按第三個、第四個…依次排序。

再配合lambda返回一個自定義tuple;代碼如下:

data = [(1, 'B'), (1, 'A'), (2, 'A'), (0, 'B'), (0, 'a')]
#將x[1].lower()作為返回元組里的第一個元素,按照sorted的排序規(guī)律,就會先按字母排序,再按數(shù)字排序了
result = sorted(data,key=lambda x:(x[1].lower(),x[0]))
print(data) #結果為 [(1, 'B'), (1, 'A'), (2, 'A'), (0, 'B'), (0, 'a')]
print(result) #結果為 [(0, 'a'), (1, 'A'), (2, 'A'), (0, 'B'), (1, 'B')]

4 [擴展] 以dict作為list的元素

這個list里的元素是dict形式,每個dict都存有姓名和升高現(xiàn)在想要以升高進行升序排列:

data = [{'name': '張三', 'height': 175}, {'name': '李四', 'height': 165}, {'name': '王五', 'height': 185}]
#將x['height']最為返回tuple的第個一元素
result = sorted(data,key=lambda x:(x['height'],x['name']))
print(data) #結果為
print(result)
#data  結果:[{'name': '張三', 'height': 175}, {'name': '李四', 'height': 165}, {'name': '王五', 'height': 185}]
#result 結果:[{'name': '李四', 'height': 165}, {'name': '張三', 'height': 175}, {'name': '王五', 'height': 185}]

PS:這里再為大家推薦一款關于排序的演示工具供大家參考:

在線動畫演示插入/選擇/冒泡/歸并/希爾/快速排序算法過程工具:
http://tools.jb51.net/aideddesign/paixu_ys

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數(shù)據結構與算法教程》、《Python列表(list)操作技巧總結》、《Python編碼操作技巧總結》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程

希望本文所述對大家Python程序設計有所幫助。

相關文章

  • python計算書頁碼的統(tǒng)計數(shù)字問題實例

    python計算書頁碼的統(tǒng)計數(shù)字問題實例

    這篇文章主要介紹了python計算書頁碼的統(tǒng)計數(shù)字問題實例,對比2個實例講述了數(shù)字統(tǒng)計的技巧,非常實用,需要的朋友可以參考下
    2014-09-09
  • 使用Python批量生成PPT版榮譽證書的示例代碼

    使用Python批量生成PPT版榮譽證書的示例代碼

    使用Python處理PPT文件通常需要使用第三方庫來簡化對PPT文件的讀取、寫入和修改操作,本文將給大家介紹一個小案例,使用Python批量生成PPT版榮譽證書,感興趣的同學跟著小編一起來看看吧
    2023-08-08
  • Python字符串的全排列算法實例詳解

    Python字符串的全排列算法實例詳解

    這篇文章主要介紹了Python字符串的全排列算法,結合實例形式較為詳細的總結分析了Python字符串全排列的常見操作技巧,需要的朋友可以參考下
    2019-01-01
  • pytorch 如何查看數(shù)據類型和大小

    pytorch 如何查看數(shù)據類型和大小

    這篇文章主要介紹了pytorch 實現(xiàn)查看數(shù)據類型和大小的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python利用OpenCV2實現(xiàn)人臉檢測

    python利用OpenCV2實現(xiàn)人臉檢測

    這篇文章主要為大家詳細介紹了python利用OpenCV2實現(xiàn)人臉檢測,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Python的函數(shù)使用示例詳解

    Python的函數(shù)使用示例詳解

    在Python的函數(shù)中,我們將其分為內置函數(shù)、自定義函數(shù)、main函數(shù)三個模塊,當然,使用的過程中會涉及到變量以及參數(shù),這些都會舉例進行說明,對Python函數(shù)使用相關知識感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • python基于pexpect庫自動獲取日志信息

    python基于pexpect庫自動獲取日志信息

    這篇文章主要介紹了python基于pexpect庫自動獲取日志信息的方法,幫助大家更好的利用python高效辦公,感興趣的朋友可以了解下
    2021-02-02
  • python實現(xiàn)異常信息堆棧輸出到日志文件

    python實現(xiàn)異常信息堆棧輸出到日志文件

    今天小編就為大家分享一篇python實現(xiàn)異常信息堆棧輸出到日志文件,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python面向對象之類屬性和類方法案例分析

    python面向對象之類屬性和類方法案例分析

    這篇文章主要介紹了python面向對象之類屬性和類方法,結合案例形式分析了Python面相對象中類屬性和類方法的相關概念、原理與使用技巧,需要的朋友可以參考下
    2019-12-12
  • python  創(chuàng)建一個保留重復值的列表的補碼

    python 創(chuàng)建一個保留重復值的列表的補碼

    這篇文章主要介紹了python 創(chuàng)建一個保留重復值的列表的補碼的相關資料,需要的朋友可以參考下
    2018-10-10

最新評論

木兰县| 松滋市| 连州市| 荃湾区| 泰州市| 手游| 榆中县| 济宁市| 铁岭县| 南溪县| 靖江市| 灵山县| 开鲁县| 新化县| 志丹县| 桐乡市| 白玉县| 彩票| 建阳市| 禄丰县| 泊头市| 郸城县| 兴隆县| 正镶白旗| 思南县| 油尖旺区| 汽车| 泊头市| 富宁县| 博白县| 本溪| 石渠县| 新化县| 吉木乃县| 沙河市| 肃南| 侯马市| 横山县| 康马县| 石狮市| 灌南县|