Python學習-高級特性

取一個list或tuple的部分元素是非常常見的操作。比如,一個list如下:

#coding=UTF-8

#list tuple string 都可以進行切片操作
L = list(range(100))
T=((0, 1, 2, 3, 4, 5))
S='abcdefjhijklmn'

print L[:10]
print L[:-10]
print L[-10:]
print L[10:20]

print T[:-1]
print S[2:5]


如果給定一個list或tuple,我們可以通過for循環來遍歷這個list或tuple,這種遍歷我們稱爲迭代(Iteration)。

那麼,如何判斷一個對象是可迭代對象呢?方法是通過collections模塊的Iterable類型判斷:

>>> from collections import Iterable
>>> isinstance('abc', Iterable) # str是否可迭代
True
>>> isinstance([1,2,3], Iterable) # list是否可迭代
True
>>> isinstance(123, Iterable) # 整數是否可迭代
False

for ch in 'ABC':
    print(ch)

如果要對list實現類似Java那樣的下標循環怎麼辦?Python內置的enumerate函數可以把一個list變成索引-元素對,這樣就可以在for循環中同時迭代索引和元素本身:

>>> for i, value in enumerate(['A', 'B', 'C']):
...     print(i, value)
...
0 A
1 B
2 C


迭代dict
>>> d = {'a': 1, 'b': 2, 'c': 3}
>>> for key in d:
...     print(key)
...
a
c
b


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章