1. 程式人生 > >(一)Python入門-3序列:07列表-排序-revered逆序-max-min-sum

(一)Python入門-3序列:07列表-排序-revered逆序-max-min-sum

red eve 相關 sed 對象 pre 最小 python 生成

一:修改原列表,不建新列表的排序

 1 >>> a = [20,10,50,30,40]
 2       
 3 >>> id(a)
 4       
 5 1983361589064
 6 >>> a.sort()    #默認升序排列
 7       
 8 >>> a
 9       
10 [10, 20, 30, 40, 50]
11 >>> a.sort(reverse=True)  #降序排序
12       
13 >>> a
14       
15
[50, 40, 30, 20, 10] 16 >>> import random 17 18 >>> random.shuffle(a) #打亂順序,隨機排序 19 20 >>> a 21 22 [40, 50, 30, 20, 10] 23 >>> random.shuffle(a) 24 25 >>> a 26 27 [10, 30, 40, 20, 50] 28 >>> id(a) 29 30 1983361589064

二:建新列表的排序

  可以通過內置函數sorted()進行排序,這個方法返回新列表,不對原列表做修改。

 1 >>> a = [20,10,50,30,40]
 2       
 3 >>> id(a)
 4       
 5 1983366024968
 6 >>> a = sorted(a)   #默認升序
 7       
 8 >>> a
 9       
10 [10, 20, 30, 40, 50]
11 >>> id(a)
12       
13 1983365869704
14
>>> a = [20,10,50,30,40] 15 16 >>> id(a) 17 18 1983361588936 19 >>> b = sorted(a) 20 21 >>> b 22 23 [10, 20, 30, 40, 50] 24 >>> id(a) 25 26 1983361588936 27 >>> id(b) 28 29 1983361522952 30 >>> c = sorted(a,reverse=True) #降序 31 32 >>> c 33 34 [50, 40, 30, 20, 10] 35 >>> id(c) 36 37 1983366024968

  通過上面操作,我們可以看出,生成的列表對象b和c都是完全新的列表對象。

三:reversed()返回叠代器

  內置函數reversed()也支持進行逆序排列,與列表對象 reverse()方法不同的是,內置函數reversed()不對原列表做任何修改,只返回一個逆序排列的叠代器對象。

 1 >>> a = [20,10,50,30,40]
 2       
 3 >>> c = reversed(a)
 4       
 5 >>> c
 6       
 7 <list_reverseiterator object at 0x000001CDC9D1E3C8>
 8 >>> list(c)
 9       
10 [40, 30, 50, 10, 20]
11 >>> list(c)
12       
13 []

  打印輸出c發現提示是:list_reverseiterator。也就是一個叠代對象。同時,我們使用 list(c)進行輸出,發現只能使用一次。第一次輸出了元素,第二次為空。那是因為叠代對象 在第一次時已經遍歷結束了,第二次不能再使用。

四:列表相關其他內置函數

  1、max和min

    用於返回列表中最大和最小值。

1 >>> a = [20,10,50,30,40]
2       
3 >>> max(a)
4       
5 50
6 >>> min(a)
7       
8 10

  2、sum

    對數值型列表的所有元素進行求和操作,對非數值型列表運算則會報錯。

1 >>> a = [20,10,50,30,40]
2       
3 >>> sum(a)
4       
5 150

(一)Python入門-3序列:07列表-排序-revered逆序-max-min-sum