一.迭代器
1.概念
迭代器指的是迭代取值的工具,迭代是乙個重複的過程,每次重複都是基於上一次的結果而繼續,單純的重複不是迭代
2.特徵
不依賴索引,通過next指標迭代所有資料,一次只取乙個,可以大大節省空間,迭代無限量的資料
3.可迭代物件
如果成員中含有__iter__這個方法,就是可迭代物件
dir函式可以用來檢視乙個物件中的所有成員
4.如何定義乙個迭代器
1)iter(可迭代物件)
2)可迭代物件.__iter__()
5.如何判斷乙個迭代器
1)如果內建成員中含有__iter__和__next__兩個方法,就可以判斷是乙個迭代器
2)使用iterator和iterable來判斷是否是迭代器
from collections import iterator , iterable
6.如何呼叫乙個迭代器
1)next(迭代器)
2)迭代器.__next__()
迭代器通過next方法呼叫時,是單向不可逆的過程
3)通過for迴圈,遍歷迭代器
4)for和next配合呼叫迭代器
注意:(1)for迴圈遍歷資料的底層實現就是利用了迭代器,通過next方法進行呼叫,從而獲取資料
(2)可迭代物件和迭代器之間的關係:從不可被直接獲取 => 可被直接獲取的過程
(3)是乙個可迭代物件,不一定是乙個迭代器
是乙個迭代器,一定是乙個可迭代物件
二.高階函式 :能夠把函式當成引數傳遞的就是高階函式
1.map函式
map(func,iterable)
功能:把iterable裡面的資料乙個乙個拿出來,放到func函式中進行處理,把處理的結果扔到迭代器中,返回迭代器
引數:func 內建或自定義函式
iterable 具有可迭代性的資料 (迭代器,容器型別的資料,range物件)
返回值: 迭代器
2.filter函式
filter(func,iterable)
功能:在自定義的函式中過濾資料
如果返回true, 代表保留資料
如果返回false,代表捨棄該資料
引數:func : 自定義函式
iterable : 具有可迭代性的資料(迭代器,容器型別資料,可迭代物件)
返回值:
返回處理後的迭代器
3.reduce函式
reduce(func,iterable)
功能:一次性從iterable當中拿出兩個值,扔到func函式中進行處理
把運算的結果和iterable的第三個值接續扔到func中做運算...以此類推最後返回計算結果
引數:func 自定義函式
iterable 可迭代性資料(容器型別資料,range物件,迭代器)
返回值: 最後計算的結果
4.sorted函式
sorted(iterable,reverse=false,key=函式)
功能:排序
引數:iterable 可迭代性資料(容器型別資料,range物件,迭代器)
reverse 代表是否倒序,reverse=true代表倒序,從大到小,reverse=false,代表正序,從小到大
key 自定義函式或內建函式
返回值:
排序後的列表
sort 基於原有的列表進行排序,只限定列表型別
sorted 所有的容器型別資料都能排序,返回乙個全新的列表(推薦)
Python學習第12天 類
1 類的建立 語法 class 類名 類的屬性 name 喵醬 類的方法 def joke self print 建立類成功 2 類的例項化 語法 例項名 類名 列如 my captain captain 意義 建立乙個例項,它可以呼叫所屬類的所有屬性和方法 知識點 3 self引數 4 init ...
學習kotlin第12天 lambda表示式
繼續昨天的,從昨天的第14個坑開始。坑1 以map為例。文件上為如下 呼叫時由於 lambda 表示式在圓括號以外,而圓括號中已無其它引數,故可以省略 fun list map transform t r list fun main args array println doubled 在idea中...
python第25天 學習python第25天
今天是在尚學堂學習python第25天今天學習了使用者管理,許可權管理 使用者管理 1.使用者的登入與退出 語法 mysql h hostname p port u username p dbname e h hostname 指定要連線mysql的主機名或者ip hostname就是具體的主機名或...