python學習第12天

2022-07-26 21:36:09 字數 1784 閱讀 7740

一.迭代器

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就是具體的主機名或...