Python學習中的關鍵點1.3
有一些函式需要了解下,這些函式在其他語言也是有類似的存在的。
切片 - 對一個list或者tuple取它的一部分內容出來。正常大家應該是想我通過迴圈,找到符合條件的內容放倒新的list或者tuple中。可以有更簡單的做法,python提供了Slice操作符:L[0:3]。
列表生成式 -1層迴圈的[x * x for x in range(1,11)] --> [1,4,9,16,25,36,49,64,81,100]
1層迴圈的加判斷[x * x for x in range(1,11) if x%2 == 0] -->[4,16,36,64,100]
2層迴圈的[x + n for m in 'abc' for n in 'xyz']
這只是應用的一些技巧,多找幾個for迴圈練練手就沒問題了。
生成器 -generator,簡單的改造是把列表生成式的[]更改為()。它的作用是什麼呢 -- 儲存演算法。
例如你以後一個100W大的資料集合,它們需要很大的記憶體空間,但是現在又用不到。我
們就儲存它的演算法。後面要用到就用這個生成器來生成資料就可以了。而且可以做到用多
少生成多少,節約大量的空間。
另外一種定義方法-yield,如果一個函式包含這個關鍵字,那麼它就不是普通的函式,而是
一個generator
迭代器 -可以用於for迴圈的物件都可以叫做迭代物件:Iterable。通過isinstance()方法判斷是否是
Iterable。
可以被next()函式呼叫並返回下一個值的物件是Iterator-迭代器。
它們的區別,迭代器代表著可以無限大的資料流,可以一直計算下去,迭代物件是一個有
大小的物件。
這部分點就這些了。