Python之切片和迭代

2021-10-02 20:37:38 字數 2260 閱讀 7481

l = ['a', 'b', 'c', 'd']
l[0:3]表示取前三個元素,當從索引0開始取的時候,0可以省略,寫作為l[:3]

l[:]表示從頭到尾。

l[1:10:2]表示從索引號為1的開始到索引號為10的結束,不包括索引號為10的元素,每2個取出乙個,即隔乙個取乙個。tuple切片與list相同。

range()可以建立乙個數列:

range(1, 101)

# [1, 2, 3, ..., 100]

l = ['a', 'b', 'c', 'd']

l[-2:]

# 輸出結果 ['c','d']

l[:-2]

# 輸出結果 ['a','b']

l[-3:-1]

# 輸出結果 ['b','c']

l[-4:-1:2]

# 輸出結果 ['a','c']

倒數第乙個元素的索引是-1。倒序切片包含起始索引,不包含結束索引。

字串 '***』和 unicode字串 u』***』也可以看成是一種list,每個元素就是乙個字元。因此,字串也可以用切片操作,只是操作結果仍是字串。操作方法與上述相同。

upper()函式可以把字元變成大寫字母。

'abc'.upper()

# 'abc'

python中,迭代是通過 for … in 來完成的,即for迴圈。for 迴圈可作用的迭代物件遠不止 list,tuple,str,unicode,dict等,任何可迭代物件都可以作用於for迴圈,而內部如何迭代我們通常並不用關心。

如果乙個物件說自己可迭代,那我們就直接用 for 迴圈去迭代它,可見,迭代是一種抽象的資料操作,它不對迭代物件內部的資料有任何要求。

有序集合:list,tuple,str和unicode;

無序集合:set

無序集合並且具有 key-value 對:dict

取出元素的索引號用enumerate() 函式

l = ['a', 'b', 'c', 'd']

for index, name in enumerate(l):

print index, '-', name

輸出結果為:

0 - a

1 - b

2 - c

3 - d

其實enumerate() 函式是把

['a','b','c','d']
變成了

[(0,'a'),(1,'b'),(2,'c'),(3,'d')]
即把每乙個元素變成了乙個個的tuple,tuple返回賦值的原理之前說過了,現在不做解釋了。

zip()函式可以把兩個list變成乙個list:

zip([10, 20, 30], ['a', 'b', 'c'])

# 操作之後的list [(10, 'a'), (20, 'b'), (30, 'c')]

迭代 dict 物件的value:values() 方法itervalues() 方法

兩種方法效果一樣,但是 values() 方法實際上把乙個 dict 轉換成了包含 value 的list, itervalues() 方法不會轉換,它會在迭代過程中依次從 dict 中取出 value,所以 itervalues() 方法比 values() 方法節省了生成 list 所需的記憶體。

d = 

print d.values()

# [85, 95, 59]

同時迭代 key和value:items() 方法iteritems()方法

iteritems() 不把dict轉換成list,而是在迭代過程中不斷給出 tuple,所以, iteritems() 不占用額外的記憶體。

d = 

print d.items()

# [('lisa', 85), ('adam', 95), ('bart', 59)]

python 切片,迭代

切片 slice 操作符 其格式為 列表 元組 名 舉個例子 我們想提取前三科成績 score 數學 90 語文 89 英語 87 物理 77 化學 90 print score 0 3 結果 數學 90 語文 89 英語 87 像上面的例子score 0 3 表示的是從索引0開始取,直到索引3為止...

Python 9「切片和迭代「

我們在對list或者tuple的元素進行取值時,一般的方法是這樣的 l 1,2,3 l 0 l 1 l 2 或者使用迴圈來獲取 l n 2 for i in range n lpython提供了更加簡便的方法能讓我們獲取這些值,那就是切片 slice list 1,2,3,4,5 取list集合中的...

python切片與迭代

切片指從乙個list或tuple取出部分元素是一種非常常見的操作。例如 0 表示從下標是0的地方開始 5 表示到下標是5的地方結束,但不包括下標 2 表示步長 如果給定乙個list或tuple,我們可以通過for迴圈來遍歷這個list或tuple,這種遍歷我們稱為迭代 iteration 只要是可迭...