Python高階特性

2021-08-09 18:25:04 字數 1452 閱讀 5964

高階特性的作用在於用最少的**解決問題,**越少效率越高

切片的作用於包括集合,元組,字串

[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可省略,也支援負數按倒數的順序取值,什麼都不...