Python 3x中列表sort的用法詳解

2021-08-04 04:29:15 字數 1669 閱讀 7065

在實際引用中,經常需要將列表中的元素按值排序,而不是按照偏移量排序。python為此提供了兩個函式:

列表方法會對原列表進行排序,改變列表排序內容;

通用函式sorted()則會返回排好序的列表副本,原列表內容不變。

sort這個函式是不帶返回值的。

如果列表中的元素都是數字,它們會預設的排列成從小到大的公升序。如果元素都是字串,則會按照字元表順序排列。

預設的排序是公升序排列的,通過新增引數reverse = true可以改為降序排列。

實驗一 整數型與字元(字母)型排序

# usr/bin/python

# _*_ coding:utf-8 _*_

a = [2,3,6,8,2,9]

b = ['d','e','r','i']

a.sort()

b.sort()

print(a)

print(b)

返回:[2, 2, 3, 6, 8, 9]

['d', 'e', 'i', 'r']

列表a為整數型列表,b列表為全字元型列表,通過sort(),預設為正序列排列,字元採用英文本母排列,數字按照大小排列;

實驗二 字元與整數型混合

# usr/bin/python

# _*_ coding:utf-8 _*_

a = [2,5,1,'e','e']

a.sort()

print(a)

返回值: typeerror: unorderable types: str() < int()

該實驗表明,數字與字元混合型列表無法採用sort實現排序。

實驗三 中文字元是否可以排序

# usr/bin/python

# _*_ coding:utf-8 _*_

a = ['我','你','他','天']

b = ['我','你','他','天']

a.sort()

b.sort()

print(a)

print(b)

返回:['他', '你', '天', '我']

返回:['他', '你', '天', '我']

實驗表面,中文是可以被排序的,但其排列方式是通過中文轉utf-8後,通過傳遞的方式一一對比然後進行排序。

實驗四 sorted 建立副本

# usr/bin/python

# _*_ coding:utf-8 _*_

a = ['d','a','c','b']

b = sorted(a) # 通過sorted先建立副本並賦值與b,然後在進行排序,sort是沒有返回值的;

c = a[:] # 通過切片的方式,賦值列表a;

c.sort() # 對c進行排序

print(a)

print(b)

print(c)

使用sorted先建立副本,然後進行排序,在此介紹乙個小技巧,利用切片,複製a表;

實驗五 將序排列

# usr/bin/python

# _*_ coding:utf-8 _*_

a = ['d','a','c','b']

a.sort(reverse=true)

print(a) # 返回['d', 'c', 'b', 'a']

reverse = ture 為sort的引數,命令sort執行將序排列。

Python3 X之列表與元組(1)

一 基本的列表操作 1.元素賦值 x 1,1,1 print x x 1 5 print x 2.刪除元素 names alice beth cecil dee dee earl print names del names 2 print names 3.分片賦值 name list perl pr...

Python3 X中的條件控制

python中沒有switch case語句。python中需條件 迴圈等後面使用冒號 做結尾。python中使用縮排劃分 塊,相同縮排則代表同乙個 塊。python中使用elif代替else if。可以使用比較運算子 in 和 not in 檢測值是否存在區間之中。if條件語句 a 10 if a...

Python3 x編碼問題

1.記事本的ansi編碼為系統本地編碼,我的是gbk open 函式的encoding引數預設是本地編碼,也就是gbk,所以直接讀取ansi編碼的記事本檔案是木有問題的。怎麼檢視系統本地編碼?在cmd下輸入 chcp 從下表可以看出,936對應gbk編碼 下表列出了所有支援的 頁及其國家 地區 或者...