在實際引用中,經常需要將列表中的元素按值排序,而不是按照偏移量排序。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編碼 下表列出了所有支援的 頁及其國家 地區 或者...