Python基礎知識(11):高級特性 一、分片(切片) 通過索引來獲取一定範圍內的元素 二、迭代 給定一個元組或列表,通過for迴圈遍歷,這種遍歷稱為迭代 結果: Alice 通過collections模塊的Iterator判斷一個對象是否是可迭代對象 enumerate函數可以把一個list變成 ...
Python基礎知識(11):高級特性
一、分片(切片)
通過索引來獲取一定範圍內的元素
#字元串 s="Alice" s[0:4:2] 結果: 'Ai' #列表 l=[1,2,3,4,5,6] l[0:2] 結果: [1, 2] #元組 t=(1,2,3,"a","b","c") t[:] 結果: (1, 2, 3, 'a', 'b', 'c')
二、迭代
給定一個元組或列表,通過for迴圈遍歷,這種遍歷稱為迭代
def test(): l=["A","l","i","c","e"] for i in l: print(i) test()
結果:
A
l
i
c
e
通過collections模塊的Iterator判斷一個對象是否是可迭代對象
from collections import Iterable isinstance("more", Iterable) 結果:True
enumerate
函數可以把一個list變成索引-元素對,可以在for
迴圈中同時迭代索引和元素本身:
for i in enumerate(["more","money","never","God"]): print(i) 結果: (0, 'more') (1, 'money') (2, 'never') (3, 'God')
三、列表生成式
可以用list(range(1, 11))
生成列表 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
列表生成式用一行語句代替迴圈生成列表
l=[] for i in range(1,10): l.append(i*i) 結果: [1, 4, 9, 16, 25, 36, 49, 64, 81] [x*x for x in range(1,10)] 結果: [1, 4, 9, 16, 25, 36, 49, 64, 81]
四、生成器
生成器generator:列表中的元素可以在迴圈中按照某種演算法推算出來機制
創建一個generator的方法:
1、把一個列表生成式的[]改成(),就創建了一個generator:
L = [x * x for x in range(9)] L
結果:
[0, 1, 4, 9, 16, 25, 36, 49, 64]
五、迭代器
凡是可作用於for
迴圈的對象都是Iterable
類型
凡是可作用於next()
函數的對象都是Iterator
類型,它們表示一個惰性計算的序列
集合數據類型如list
、dict
、str
等是Iterable
但不是Iterator
,不過可以通過iter()
函數獲得一個Iterator
對象
資料來源:
廖雪峰官方網:https://www.liaoxuefeng.com