Python3 基礎 高階特性 切片和迭代

2021-07-25 15:00:17 字數 2556 閱讀 9081

# 定義乙個list

l = ['michael', 'sarah', 'tracy', 'bob', 'jack']

# 對l進行切片

>>> l[0:3] # 取索引:0 1 2的內容 ,或者簡寫:l[:3]

['michael', 'sarah', 'tracy']

# 倒數切片

>>> l[-2:]

['bob', 'jack'] # 記住倒數第乙個元素的索引是-1

>>> l[-2:-1]

['bob'] # 注意結果取的是-2位置的內容

## 再來乙個例子

>>> l =list(range(100)) # 定義乙個0...99的list

>>> l[:10] # 取前10個

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> l[:10:2] # 取前10個,每兩個取乙個

[0, 2, 4, 6, 8]

>>> l[::5] # 0...99,每五個取乙個

[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]

>>> l[:] # 這個相當於複製了乙個list

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

>>>

tuple也是一種list,唯一區別是tuple不可變。因此,tuple也可以用切片操作,只是操作的結果仍是tuple.

字串』***』也可以看成是一種list,每個元素就是乙個字元。因此,字串也可以用切片操作,只是操作結果仍是字串:

>>> 'abcdefg'[:3]

'abc'

>>> 'abcdefg'[::2]

'aceg'

如果給定乙個list或tuple,我們可以通過for迴圈來遍歷這個list或tuple,這種遍歷我們稱為迭代(iteration)。

dict的迭代,預設情況下,dict迭代的是key。如果要迭代value,可以用for value in d.values(),如果要同時迭代key和value,可以用for k, v in d.items()。

# 預設迭代key

>>> k =

>>> for key in k:

... print(key)

# 遍歷value

>>> for value in k.values():

... print(value)

...

# 遍歷key和value

>>> for k,v in k.items():

... print(k,v)

...

由於字串也是可迭代物件,因此,也可以作用於for迴圈:

>>> for ch in 'abc':

... print(ch)

...

當我們使用for迴圈時,只要作用於乙個可迭代物件,for迴圈就可以正常執行,那麼如何判斷是可迭代物件呢?

方法是通過collections模組的iterable型別判斷:

>>> from collections import iterable

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

true

>>> isinstance([1,2,3], iterable) # list是否可迭代

true

>>> isinstance(123, iterable) # 整數是否可迭代

false

python內建的enumerate函式可以把乙個list變成索引-元素對,這樣就可以在for迴圈中同時迭代索引和元素本身:

>>> for i, value in enumerate(['a', 'b', 'c']):

... print(i, value)

...0 a

1 b2 c

Python3(高階特性)

1.例題答案 小寫化含有數字的list l2 s.lower for s in l1 if isinstance s,str true l2.insert key,value for key,value in enumerate l1 if isinstance value,int true l2注...

Python3 高階特性

可迭代物件 集合資料型別 list tuple dict set str generator,包括生成器和帶yield的generator function 可以採用collections模組的iterable型別判斷是否是可迭代物件 from collections import iterable...

python3 切片 python3 切片

取乙個list或tuple的部分元素是非常常見的操作。比如,乙個list如下 l michael sarah tracy bob jack 取前3個元素,應該怎麼做?笨辦法 l 0 l 1 l 2 michael sarah tracy 之所以是笨辦法是因為擴充套件一下,取前n個元素就沒轍了。取前n...