高階特性的作用在於用最少的**解決問題,**越少效率越高
切片的作用於包括集合,元組,字串
[0:10]:獲取集合或者字串中第 0 個到第 9 個元素組成新資料,切片規則時包左不包右
[0:10:2]:獲取第 0 個到第 9 個的元素中第 0 ,2,3,5,7,9 的元素組成新資料
[::2]:從第乙個元素開始跳過乙個元素獲取元素組成新資料
[-3:-1]:獲取倒數第三和倒數第二的元素組成新資料
可以使用 for x in *** 迭代任何能迭代的資料型別,如集合,元組,tuple,字串等
資料是否可以迭代可以使用 collections 模組的 iterable 型別判斷:
from collections import iterable #匯入模組
isinstance('abc', iterable) # str是否可迭代
1,list(range(1,11)):[1,2,3,4,5,6,7,8,9,10] => 普通生成列表
2,[ x*x for x in range(1,5) ]:[1,4,9,16] => 根據運算結果生成列表
3,[ x*x for x in range(1,7) if x % 2 == 0]:[4,16,36] => 根據條件獲取元素再進行運算生成列表
4,[ x + y for x in "ab" for y in "xy" ]:["ax","ay","bx","by"] => 雙層迴圈獲取元素生成列表
5,[ x + y for x , y in dict.items() ] => 獲取兩個元素生成列表
列表元素可以通過運算生成,而且如果使用集合的話會造成元素過多,造成記憶體浪費,這個時候就可以使用生成器,generator。
generator 的元素可以用 next(generator) 來獲取,也可以通過迭代過去元素
定義 generator 語句時在返回語句的地方使用yield
,generator 會在呼叫 next(generator) 方法的時候執行,而執行會在遇到 yield 時停止,下一次呼叫 next() 時會從上一次的 yield 的地方繼續執行
可以使用 for 迴圈的物件稱作為可迭代物件iterable
需要用 next() 作用迴圈的物件叫做iterator
,是一種惰性計算的序列,即為迭代器
可以使用isinstance()
方法來判定是否是可迭代物件,isinstance
("abc" ,iterable
) ==> 如果是返回 true,否則返回 false
Python高階特性
l csx sarah tracy bob jack print l 0 l 1 l 2 輸出 csx sarah tracy l 0 3 輸出 csx sarah tracy 如果第乙個索引是0,還可以省略 print l 2 輸出 bob jack print l 2 1 輸出 bob d fo...
Python高階特性
python 高階特性 from collections import iterable from collections import iterator 切片 list切片 l list range 100 print l 0 3 取前3個元素 print l 3 取前3個元素 print l 4...
Python高階特性
切片 slice 非常靈活,體現了python的簡便性 1.取乙個list和tuple的部分元素時的簡化操作 l michael sarah tracy bob jack l 0 3 michael sarah tracy 從0開始不包括3,第乙個索引是0可省略,也支援負數按倒數的順序取值,什麼都不...