麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Python > 正文

Python sorted函數(shù)詳解(高級篇)

2020-02-15 23:00:20
字體:
供稿:網(wǎng)友

sorted 用于對集合進(jìn)行排序(這里集合是對可迭代對象的一個(gè)統(tǒng)稱,他們可以是列表、字典、set、甚至是字符串),它的功能非常強(qiáng)大

1、對列表排序,返回的對象不會改變原列表

list = [1,5,7,2,4]sorted(list)Out[87]: [1, 2, 4, 5, 7]#可以設(shè)定時(shí)候排序方式,默認(rèn)從小到大,設(shè)定reverse = False 可以從大到小sorted(list,reverse=False)Out[88]: [1, 2, 4, 5, 7]sorted(list,reverse=True)Out[89]: [7, 5, 4, 2, 1]

2、根據(jù)自定義規(guī)則來排序,使用參數(shù):key

# 使用key,默認(rèn)搭配lambda函數(shù)使用sorted(chars,key=lambda x:len(x))Out[92]: ['a', 'is', 'boy', 'bruce', 'handsome']sorted(chars,key=lambda x:len(x),reverse= True)Out[93]: ['handsome', 'bruce', 'boy', 'is', 'a']

3、根據(jù)自定義規(guī)則來排序,對元組構(gòu)成的列表進(jìn)行排序

tuple_list = [('A', 1,5), ('B', 3,2), ('C', 2,6)]#key=lambda x: x[1]中可以任意選定x中可選的位置進(jìn)行排序sorted(tuple_list, key=lambda x: x[1]) Out[94]: [('A', 1, 5), ('C', 2, 6), ('B', 3, 2)]sorted(tuple_list, key=lambda x: x[0])Out[95]: [('A', 1, 5), ('B', 3, 2), ('C', 2, 6)]sorted(tuple_list, key=lambda x: x[2])Out[96]: [('B', 3, 2), ('A', 1, 5), ('C', 2, 6)]

4、排序的元素是自定義類

class tuple_list: def __init__(self, one, two, three):  self.one = one  self.two = two  self.three = three def __repr__(self):  return repr((self.one, self.two, self.three))tuple_list_ = [tuple_list('A', 1,5), tuple_list('B', 3,2), tuple_list('C', 2,6)]sorted(tuple_list_, key=lambda x: x.one)Out[104]: [('A', 1, 5), ('B', 3, 2), ('C', 2, 6)]sorted(tuple_list_, key=lambda x: x.two)Out[105]: [('A', 1, 5), ('C', 2, 6), ('B', 3, 2)]sorted(tuple_list_, key=lambda x: x.three)Out[106]: [('B', 3, 2), ('A', 1, 5), ('C', 2, 6)]

5、sorted 也可以根據(jù)多個(gè)字段來排序

class tuple_list: def __init__(self, one, two, three):  self.one = one  self.two = two  self.three = three def __repr__(self):  return repr((self.one, self.two, self.three))tuple_list_ = [tuple_list('C', 1,5), tuple_list('A', 3,2), tuple_list('C', 2,6)]# 首先根據(jù)one的位置來排序,然后根據(jù)two的位置來排序sorted(tuple_list_, key=lambda x:(x.one, x.two))Out[112]: [('A', 3, 2), ('C', 1, 5), ('C', 2, 6)]

6、使用operator 中的itemgetter方法和attrgetter方法

tuple_list = [('A', 1,5), ('B', 3,2), ('C', 2,6)]class tuple_list_class: def __init__(self, one, two, three):  self.one = one  self.two = two  self.three = three def __repr__(self):  return repr((self.one, self.two, self.three))tuple_list_ = [tuple_list_class('C', 1,5), tuple_list_class('A', 3,2), tuple_list_class('C', 2,6)]from operator import itemgettersorted(tuple_list, key=itemgetter(1))Out[119]: [('A', 1, 5), ('C', 2, 6), ('B', 3, 2)]from operator import attrgettersorted(tuple_list_, key=attrgetter('one')) # attrgetter 傳入的參數(shù)必須是strOut[120]: [('A', 3, 2), ('C', 1, 5), ('C', 2, 6)]# 如果是根據(jù)多個(gè)類的參數(shù)排序,按照參數(shù)定義順序from operator import attrgettersorted(tuple_list_, key=attrgetter('two','one'))Out[121]: [('C', 1, 5), ('C', 2, 6), ('A', 3, 2)]            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美日韩国产成人在线观看 | 亚洲综合91 | www.成人免费视频 | 国内精品久久久久久久星辰影视 | 天天草天天干天天射 | 国产精品久久久久无码av | 午夜伦情电午夜伦情电影 | 妇子乱av一区二区三区 | 国产精品久久久久无码av | 久久午夜免费视频 | 成人羞羞在线观看网站 | 水卜樱一区二区av | 亚洲视频成人在线 | 国产中文99视频在线观看 | 国产色视频免费 | 91看片淫黄大片欧美看国产片 | 国产精品一区二区三区99 | 久久精品免费网站 | 国产精品亚洲精品日韩已方 | 久久草在线观看视频 | 国产精品一区2区3区 | 视频久久免费 | 一区二区三区视频播放 | 欧美一区二区三区不卡免费观看 | 国产一区二区免费 | 国产精品影视 | 亚洲第一综合色 | 国产一国产一级毛片视频 | 国产精品久久久网站 | 欧美a区 | 人人做人人看 | 国产一及毛片 | 男男羞羞视频网站国产 | 国产亚洲综合一区二区 | 97干色| 中文字幕涩涩久久乱小说 | 久久久久亚洲视频 | 久久sp| www视频免费在线观看 | 99视频有精品视频高清 | 亚洲精品午夜国产va久久成人 |