1. 程式人生 > 其它 >Python常用內建函式,迭代器物件

Python常用內建函式,迭代器物件

一.常用內建函式

1.1 map() 對映

1 l = [1, 2, 3, 4]
2 res = map(lambda x: x + 1, l)
3 print(list(res))

1.2 zip() 拉鍊

 1 zip()  # 拉鍊
 2 l1 = ['11', '22', '33', '99']
 3 l2 = ['jason', 'jack', 'tony', 'lai']
 4 # 傳統做法
 5 list1 = []
 6 for i in range(len(l1)):
 7     list1.append((l1[i], l2[i]))
 8 print(list1)
9 # zip做法 10 res = zip(l1, l2) 11 print(list(res))

1.3 max與min max求最大值,min求最小值

1 # max和min
2 l222 = [11, 14, 55, 77, 88, 90]
3 print(max(l222))
4 print(min(l222))
5 # 進階做法
6 d = {'jason': 3000, 'jack': 900, 'lee': 345}
7 print(max(d, key=lambda key: d[key]))

1.4 filter 過濾

1 # 4.filter  過濾
2 l = [11, 22, 33, 44, 55]
3 res = filter(lambda x: x > 30, l) 4 print(list(res)) # [33, 44, 55]

1.5 歸總

1 # reduce 歸總
2 from functools import reduce
3 new_list = [11, 22, 33, 40]
4 res = reduce(lambda x, y: x + y, new_list)
5 print(res)
6 res1 = reduce(lambda x, y: x + y, new_list, 100)
7 print(res1)

二.可迭代物件

2.1 迭代

迭代即更新換代 每次的更新都必須依賴於上一次的結果。

迭代其實給我們提供了一種不依賴索引取值的方式

2.2 可迭代物件

內建有_ _iter_ _方法的都稱為可迭代物件

內建_ _iter_ _的有 字串 列表 字典 元組 集合 檔案物件

_ _iter_ _在呼叫的時候還有一個簡便的寫法iter()

1 print(d)
2 print(d.__iter__())  # 等價於呼叫了一個內建方法 d.get()
3 print(iter(d))
4 print(d.__len__())
5 print(len(d))

三.迭代器物件

迭代器物件

既含有_ _iter_ _方法 又含有_ _next_ _方法

如何生成迭代器物件

讓可迭代物件執行_ _iter_ _方法

檔案物件本身即是可迭代物件又是迭代器物件
迭代器物件無論執行多少次__iter__方法 還是迭代器物件(本身)

1 res = s.__iter__()  # 轉成迭代器物件
2 print(res.__next__())  # 迭代器物件執行__next__方法其實就是在迭代取值(for迴圈)
3 print(res.__next__())
4 print(res.__next__())
5 print(res.__next__())
6 print(res.__next__())

四.for 迴圈本質

for迴圈內部原理

1.將關鍵字in後面的資料先呼叫__iter__方法轉為迭代器物件

2.迴圈執行__next__方法

3.取完之後__next__會報錯 但是for迴圈會自動捕獲該錯誤並處理

1 res = 資料.__iter__()
2 while True:
3     # 檢測程式碼是否會報錯
4     res.__next__()
5     # 如果報錯了則自動處理掉並結束while迴圈

五.異常捕獲

5.1 什麼是異常

程式碼在執行時出錯會導致異常 異常發生後如果沒有解決方案則會到底整個程式結束

5.2 異常的三個重要組成部分

1.traceback

翻到最下面從下往上的第一個藍色字型滑鼠左鍵點選即可跳轉到錯誤的程式碼所在的行

2.XXXError

錯誤的型別

3.錯誤型別冒號後面的內容

錯誤的詳細原因(很重要 仔細看完之後可能就會找到解決的方法)

 1 """
 2 基本語法結構
 3     try:
 4         有可能會出錯的程式碼
 5     except 錯誤型別 as e:
 6         出錯之後對應的處理機制(e是錯誤的詳細資訊)
 7     except 錯誤型別 as e:
 8         出錯之後對應的處理機制(e是錯誤的詳細資訊)
 9     except 錯誤型別 as e:
10         出錯之後對應的處理機制(e是錯誤的詳細資訊)
11 """

5.3 萬能異常

1 try:
2     # int('abc')
3     print(name)
4     # l = [11]
5     # l[100]
6 except Exception:
7     print('你來啥都行 無所謂')