Python3 高階特性

2021-08-05 18:25:25 字數 1507 閱讀 3836

可迭代物件

* 集合資料型別:listtuple``dict``set``str

*generator,包括生成器和帶yield的generator function

可以採用collections模組的iterable型別判斷是否是可迭代物件

>>>from collections import iterable

>>>isinstance('abc',iterable)

true

>>>isinstance([1,2,3],iterable)

true

>>>isinstance(123,iterable)

false

for i,value in enumerate(['a','b','c'])

print(i,value)

0 a1 b

2 c

>>>[x*x for x in range(1,11)]

[1,4,9,16,25,36,49,64,81,100]

>>>[x*x for x in range(1,11) if x%2 == 0 ]

[4,16,36,64,100]

>>>[m+n for m in

'abc' ro n in

'xyz']

['ax', 'ay', 'az', 'bx', 'by', 'bz', 'cx', 'cy', 'cz']

>>>import os

>>>[d for d in os.listdir('.')] #os.listdir可以列出檔案和目錄

>>>[s.lower() for s in l]

生成器把結果儲存為生成器的狀態,在每次進行迭代時返回乙個值,直到遇到stop iteration異常結束

>>>l=[x*x for x in range(10)]

>>>l

[0,1,4,9,16,25,36,49,64,81]

>>>g=(x*x for x in range(10))

>>>g

at 0x1022ef630>

普通函式呼叫直接返回結果,generator函式的呼叫,返回乙個generator物件;(呼叫generator時可以先建立乙個物件,再用next()方法不斷獲得下乙個返回值,但實際中通常用for迴圈實現)

generator在執行過程中,遇到yield就中斷,下次又繼續執行

>>>isinstance(iter(),iterator)

true

>>>isinstance(iter('abc'),iterator)

true

Python3(高階特性)

1.例題答案 小寫化含有數字的list l2 s.lower for s in l1 if isinstance s,str true l2.insert key,value for key,value in enumerate l1 if isinstance value,int true l2注...

Python3 基礎 高階特性 迭代器

凡是可作用於for迴圈的物件都是iterable型別 凡是可作用於next 函式的物件都是iterator型別,它們表示乙個惰性計算的序列 集合資料型別如list dict str等是iterable但不是iterator,不過可以通過iter 函式獲得乙個iterator物件。python的for...

Python3 基礎 高階特性 切片和迭代

定義乙個list l michael sarah tracy bob jack 對l進行切片 l 0 3 取索引 0 1 2的內容 或者簡寫 l 3 michael sarah tracy 倒數切片 l 2 bob jack 記住倒數第乙個元素的索引是 1 l 2 1 bob 注意結果取的是 2位置...