1. 程式人生 > >封裝解構,集合,字典,內建函數和簡單選擇排序相關知識及習題

封裝解構,集合,字典,內建函數和簡單選擇排序相關知識及習題

byte efault 練習 索引 list() 運算符 sha pow(x 不存在

封裝

將多個值使用逗號分割,組合在一起
本質上,返回一個元組,只是省掉了小括號
python特有語法,被很多語言學習和借鑒

解構

把線性結構的元素解開,並順序的賦給其它變量
左邊接納的變量數要和右邊解開的元素個數一致

轉置矩陣

方陣
技術分享圖片
利用封裝解構完成代碼
技術分享圖片
矩陣
先開辟空間再利用封裝解構完成代碼
技術分享圖片
利用enumerate函數得到索引值完成代碼
技術分享圖片

集合

可變的 、 無序的 、 不重復 的元素的集合
set的元素要求必須可以hash
元素不可以索引
set可以叠代
set增加
add(elem)
增加一個元素到set中,如果元素存在,什麽都不做
update(*others)
合並其他元素到set集合中來,參數others必須是可叠代對象,就地修改

set刪除
remove(elem)
從set中移除一個元素,元素不存在,拋出KeyError異常。為什麽是KeyError?
discard(elem)
從set中移除一個元素,元素不存在,什麽都不做
pop() -> item
移除並返回任意的元素。為什麽是任意元素?空集返回KeyError異常
clear()
移除所有元素
set修改、查詢
修改
要麽刪除,要麽加入新的元素
查詢
非線性結構,無法索引
遍歷
可以叠代所有元素
成員運算符
in 和 not in 判斷元素是否在set中
集合練習
隨機產生2組各10個數字的列表,如下要求:
每個數字取值範圍[10,20]
統計20個數字中,一共有多少個不同的數字?
2組之間進行比較,不重復的數字有幾個?分別是什麽?
2組之間進行比較,重復的數字有幾個?分別是什麽?
技術分享圖片

字典

key-value鍵值對的數據的集合
可變的 、 無序的 、 key不重復
字典增加和修改
d[key] = value
將key對應的值修改為value
key不存在添加新的kv對
update([other]) -> None
使用另一個字典的kv對更新本字典
key不存在,就添加
key存在,覆蓋已經存在的key對應的值
就地修改
字典刪除
pop(key[, default])
key存在,移除它,並返回它的value
key不存在,返回給定的default
default未設置,key不存在則拋出KeyError異常
popitem()
移除並返回一個任意的鍵值對

字典為empty,拋出KeyError異常
clear()
清空字典
字典遍歷
for ... in dict
既可以遍歷key,也能遍歷value
defaultdict
collections.defaultdict([default_factory[, ...]])
第一個參數是default_factory,缺省是None,它提供一個初始化函數。當key不存在的時候,會調用
這個工廠函數來生成key對應的value
OrderedDict(有序字典)
collections.OrderedDict([items])
key並不是按照加入的順序排列,可以使用OrderedDict記錄順序
字典練習
字符串重復統計
字符表‘abcdefghijklmnopqrstuvwxyz‘
隨機挑選2個字母組成字符串,共挑選100個
降序輸出所有不同的字符串及重復的次數
技術分享圖片

簡單的選擇排序

屬於選擇排序
兩兩比較大小,找出極值(極大值或極小值)被放置在固定的位置,這個固定位置一般指的是
某一端
結果分為升序和降序排列
標註的是二元方法,在其中加入判斷極大值是否與極小值交換位置,並且其中加入了優化判斷是否提前完成排序
技術分享圖片

內建函數

標識 id
哈希 hash
類型 type
類型轉換
float() int() bin(二進制字符串)hex(十六進制) oct(八進制) bool() list() tuple() dict() set() complex() bytes() bytearray()
輸入 input([prompt])
打印 print(*object,sep=‘‘,end=‘\n‘,file=sys.stdout,flush=False)
絕對值 abs(x)
最大值max() 最小值min()
round() 四舍六入五取偶
pow(x,y)等價於x**y
range(stop)
divmod(x,y)等價於 tuple(x//y,x%y)
sum(iterable[,star t])對可叠代對象的所有數值元素求和
sum(range(1,100,2))
chr(i) 給一個一定範圍的整數返回對應的字符
ord(c) 返回字符對應的整數
str() 、repr()、ascii() 後面說
sorted(iterable[, key][, reverse]) 排序
返回一個新的列表,默認升序
reverse是反轉
翻轉 reversed(seq)
返回一個翻轉元素的叠代器

封裝解構,集合,字典,內建函數和簡單選擇排序相關知識及習題