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 只要是可迭...