列表生成式 生成器 迭代器

2021-09-01 06:37:13 字數 1161 閱讀 2204

#1、列表生成式,可以在前邊加入表示式或者函式

# a = [x*2 for x in range(10)]

# print(a)

## def f(n):

# return n*n*n

# b = [f(x) for x in range(10)]

# print(b)

#2、a.生成器,每次使用得時候才會計算,每次只能取下乙個而不能跳躍取值.生成器就是乙個可以迭代得物件

#下邊得i取值得是接著上邊一起取得,由於上邊已經取完了所以下邊就沒有了

#在迴圈中,i這個變數每次只引用乙個值,所以只有乙個值是占用記憶體,前面得引用都消失

#在迴圈中,最後乙個變數時,會自己捕獲到異常,從而自動停止

# a = (x*2 for x in range(3))

# print(type(a)) ## print(next(a))

# print(next(a))

# print(next(a))

# #print(next(a)) #stopiteration

# for i in a:

# print(i)

#b.迭代器得兩種生成方式

# a = (x*2 for x in range(10))

#yield關鍵字,在這個關鍵字相當於return方法,不同之處是,呼叫next()時,在執行到這裡得時候會儲存函式得狀態

#下次繼續從該狀態執行下去

# def foo():

# print('no1')

# yield 1

# print('no2')

# yield 2

## s = foo()

# print(s) #這裡得s就是乙個生成器,直接執行得時候是不會列印出來得,呼叫next(s)方法得時候才會執行

# next(s) #執行生成器,返回第乙個生成器得值

# next(s)

# print(next(s))

# def f(max):

# n, before, after = 0, 0, 1

# while(ns = iter(t1)

print(next(s))

print(next(s))

列表生成式 生成器 迭代器

列表生成式 可以直接在列表裡進行運算 生成器 一邊迴圈一邊計算的機制,稱為生成器 generator 就是生成乙個不執行的函式或者列表,即資料流 第二句 生成器與列表的區別 生成器你不知道長度,就是乙個資料流 list dict str你知道長度 迭代器 可以被next 函式呼叫並不斷返回下乙個值的...

Python 列表生成式 生成器 迭代器

常見的列表生成方式 1.list list range 1 5 1 2,3 4 2.for迴圈 l for i in range 1 5 l 1 2,3 4 3.列表生成式 在列表生成時加入限制判斷條件 例 1,2,3,4 x for x in range 1 5 可以新增限制條件 2.4 x fo...

迭代器生成器生成式

器 工具 迭代 是乙個重複的過程,但每次重複都是基於上一次的結果而來的 迭代器 就是一種不依賴於索引的取值工具 特性 1.是一種通用的迭代取值方案 2.惰性計算,節省記憶體 對於序列型別 str,list,tuple可以依賴索引來迭代取值 對於dict,set,檔案 python必須為我們提供一種不...