Python學習(3)——高階特性
阿新 • • 發佈:2018-11-16
1、切片
(1)後10個數:L[-10:]
(2)前10個數,每兩個取一個:L[:10:2]
(3)倒序:L[::-1]
2、列表生成式
(1)[x * x for x in range(1, 11) if x % 2 == 0]
(2)[m + n for m in 'ABC' for n in 'XYZ']
3、生成器
(1)g = (x * x for x in range(10))
for n in g:
(2)不必顯式寫出臨時變數t就可以賦值(tuple)
(3)上面的函式和generator僅一步之遙(yield)
(4)L = [1] + [L[i - 1] + L[i] for i in range(1, len(L))] + [1]
4、迭代器
(1)可以直接作用於for
迴圈的物件統稱為可迭代物件:Iterable
from collections import Iterable
isinstance([], Iterable)
(2)可以被next()
函式呼叫並不斷返回下一個值的物件稱為迭代器:Iterator
from collections import Iterator
isinstance((x for x in range(10)), Iterator)
(3)生成器都是Iterator
物件,但list
、dict
、str
雖然是Iterable
,卻不是Iterator
把list
、dict
、str
等Iterable
變成Iterator
可以使用iter()
函式