Python學習第九天 生成式,迭代器

2021-08-22 06:09:20 字數 1411 閱讀 7303

快速生成乙個列表或者字典的一種方式

列表生成式格式:

​ [元素 元素** 元素篩選判定] 中間空格隔開

list0 = [i for i in range(10) if i % 2 == 0]

生成十以內偶數序列

字典生成式格式:

dict0 = 

dict1 =

鍵值互換

生成的是乙個容器

與列表生成式對比

​ 列表生成式生成資料,如果使用資料時只使用前幾個,會造成記憶體浪費

生成器可以彌補生成式的缺陷,生成的資料不會立即存放在記憶體,使用時才會把要使用的資料提取到記憶體

宣告方式:

​ (元素 元素** 元素篩選判定)

gene = (i for in range(10000))
​ 類似於方法的宣告,return換為yield

def test():

for i in range(10000):

yield i

在生成器中獲取資料:

​ 通過next方法

def test():

for i in range(10000):

yield i

print(「下一次獲取時執行的語句」)

a = test()

print(next(a))

print(next(a))

輸出

遍歷序列的另外一種方式

通過next方法,使指標向下移動獲取資料

使用迭代器遍歷序列,序列必須是可以迭代的

from collections.abc import iterator

​ iterator型別,符合這個型別的都可以通過for in進行遍歷

from collections.abc import iterable

​ iterable 型別,可以使用迭代器進行遍歷

能使用for in 遍歷的不一定可以使用迭代器遍歷

如何將可以使用for in 遍歷的資料轉換為可用迭代器遍歷的資料

​ 將資料通過iter()方法轉換為iterator型別

ite = iter([1,2,3,4,5])

print(next(ite))

判斷是否為某資料型別:

isinstance(value, 資料型別)

python學習 第九天

在下這廂有禮了 爬蟲簡單實現 coding utf 8 import urllib def gethtml url page urllib.urlopen url html page.read returnhtml html gethtml print html l urllib 模組提供了讀取we...

python學習第九天

一.檔案的擴充套件模式 擴充套件模式 配合開啟模式的輔助模式,自己單獨不能使用 如 和 b 1.先讀後寫 r 2.先寫後讀 r 3.可讀可寫 w 4.可讀可寫 a 在寫入內容時,會強制把游標移動到最後 二.read seek tell 三個函式的使用 utf 8編碼格式下 預設乙個中文三個位元組 乙...

python學習第九天

函式 函式 function 對功能或者動作的封裝 定義 可以幫我們把一段公共的 提取出來.函式的書寫格式 def 函式名 函式體return 返回值,可在後面加入內容 如 return 內容1 內容2 函式的呼叫格式 函式名 引數 引數 函式在執行過程中給函式傳遞的資訊 形參 函式在宣告的時候寫的...