1. 程式人生 > >Python學習(3)——高階特性

Python學習(3)——高階特性

1、切片

(1)後10個數:L[-10:]

(2)前10個數,每兩個取一個:L[:10:2]

(3)倒序:L[::-1]

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431756919644a792ee4ead724ef7afab3f7f771b04f5000

 

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']

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431779637539089fd627094a43a8a7c77e6102e3a811000

 

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]

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014317799226173f45ce40636141b6abc8424e12b5fb27000

 

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物件,但listdictstr雖然是Iterable,卻不是Iterator

        把listdictstrIterable變成Iterator可以使用iter()函式

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143178254193589df9c612d2449618ea460e7a672a366000