高級特性

一、切片css

  L[0:3]、L[:3]、L[3:]、L[-1:]、L[:10:2]、L[::5]python

  tuple也是一種list,惟一區別是tuple不可變。所以,tuple也能夠用切片操做,只是操做的結果還是tuple。函數

  字符串'xxx'也能夠當作是一種list,每一個元素就是一個字符。所以,字符串也能夠用切片操做,只是操做結果還是字符串。spa

二、迭代code

  在Python中,迭代是經過for ... in來完成的。對象

  只要是可迭代對象,不管有無下標,均可以迭代索引

  默認狀況下,dict迭代的是key。若是要迭代value,能夠用for value in d.values(),若是要同時迭代key和value,能夠用for k, v in d.items()字符串

  字符串也可迭代。generator

  判斷是否可迭代:經過collections模塊的Iterable類型判斷。string

    isinstance('abc', Iterable) # str是否可迭代

  enumerate函數能夠把一個list變成索引-元素對

三、列表生成式

  [結果計算式 for x in range(a, b) if 條件判斷]

  兩層循環: [m + n for m in 'ABC' for n in 'XYZ']

        ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

四、生成器(generator)

  一邊循環一邊計算的機制,節省了大量的空間。

  原理:在for循環的過程當中不斷計算出下一個元素,並在適當的條件結束for循環。

五、迭代器

  能夠直接做用於for循環的數據類型有如下幾種:

    一類是集合數據類型,如listtupledictsetstr等;

    一類是generator,包括生成器和帶yield的generator function。

  生成器都是Iterator對象,但listdictstr雖然是Iterable,卻不是Iterator。把listdictstrIterable變成Iterator可使用iter()函數

相關文章
相關標籤/搜索