python推導式 生成器和迭代器

2021-10-06 02:31:52 字數 3051 閱讀 4529

1、列表推導式:

li =

["page{}"

.format

(i)for i in

range(1

,101)]

print

(li)

[

'page1'

,'page2'

,'page3'

,'page4'

,'page5'

,'page6'

,'page7'

,'page8'

,'page9'

,'page10'

,'page11'

,'page12'

,'page13'

,'page14'

,'page15'

,'page16'

,'page17'

,'page18'

,'page19'

,'page20'

,'page21'

,'page22'

,'page23'

,'page24'

,'page25'

,'page26'

,'page27'

,'page28'

,'page29'

,'page30'

,'page31'

,'page32'

,'page33'

,'page34'

,'page35'

,'page36'

,'page37'

,'page38'

,'page39'

,'page40'

,'page41'

,'page42'

,'page43'

,'page44'

,'page45'

,'page46'

,'page47'

,'page48'

,'page49'

,'page50'

,'page51'

,'page52'

,'page53'

,'page54'

,'page55'

,'page56'

,'page57'

,'page58'

,'page59'

,'page60'

,'page61'

,'page62'

,'page63'

,'page64'

,'page65'

,'page66'

,'page67'

,'page68'

,'page69'

,'page70'

,'page71'

,'page72'

,'page73'

,'page74'

,'page75'

,'page76'

,'page77'

,'page78'

,'page79'

,'page80'

,'page81'

,'page82'

,'page83'

,'page84'

,'page85'

,'page86'

,'page87'

,'page88'

,'page89'

,'page90'

,'page91'

,'page92'

,'page93'

,'page94'

,'page95'

,'page96'

,'page97'

,'page98'

,'page99'

,'page100'

]

2、字典推導式

dic =

print

(dic)

1、生成器表示式

tu =

(i for i in

range(10

))print

(tu)

at 0x0000016a0574ee08>
2、通過yield自定義生成器

def

gen_fun()

:yield

100print

("hello"

)yield

1000

res = gen_fun(

)#返回生成器物件

print

(next

(res)

)print

(next

(res)

)

100

hello

1000

#迭代物件:可以通過for迴圈遍歷的都是可迭代物件,內部只實現了__iter__方法

#列表li1 =[1

,2,3

,4,5

]li2 =

(iter

(li1)

)#iter() 實現了__iter__方法

#迭代器 內部實現了__iter__之外 也實現了__next__方法

print

(next

(li2)

)#__next__

print

(type

(li2)

)tu.send(

)#與生成器進行互動

1

'list_iterator'>

生成器和迭代器的區別:

1、生成器屬於迭代器的一種

2、生成器相比迭代器多了幾種方法:

send() :與生成器進行互動

closs方法:關閉生成器

throw方法

gen.throw(exception,「method throw called」)

生成器《迭代器《可迭代物件

python 推導式和迭代器 生成器

1.1 列表推導式 exprsssion for item in iterable if condition 多個for的巢狀表示式 x,y for x in x list for y in y list 生成乙個x,y的元組的列表。1.2 字典推導式 1.3 集合推導式 1.4 生成器推導式 乙個...

生成器,生成器推導式和列表推導式

python社群,大部分生成器和迭代器是一種 生成器的本質是迭代器 唯一區別 生成器是我們自己用python 構建的資料結構 迭代器都是提供的,或者轉化得來的 生成器函式 生成器表示式 python提供的 yield 乙個next 對應乙個yield yield和下乙個yield中間有 的話只執行乙...

python 列表推導式 生成器 迭代器

列表推導式 字典推導式和元組推導式類似 列表推導式格式 表示式 for 變數 in 可迭代 if 條件 兩個列子 乙個有if乙個沒有if list1 1,2,3 4,5,6 1,3,5 name x 2 for x in list1 結果 3,6,5 列表推導式是可以使用兩個for的 name x,...