好好学python · 元组
生活随笔
收集整理的這篇文章主要介紹了
好好学python · 元组
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
元組
- 數(shù)據(jù)類型詳解-元組
- 元組定義
- 元組的相關(guān)操作
- 元組的切片操作
- 元組推導(dǎo)式 生成器
- 生成器是什么?
- 語法
- 如何使用操作生成器?
數(shù)據(jù)類型詳解-元組
元組中的元素一但定義不可以修改,因此元組稱為 不可變數(shù)據(jù)類型
元組定義
- 定義空元組 變量 = (),或者 變量=tuple()
- 還可以使用 變量 = (1,2,3) 定義含有數(shù)據(jù)的元組
- 注意:如果元組中只有一個(gè)元素時(shí),必須加逗號(hào) 變量=(1,)
- 特例:變量=1,2,3 這種方式也可以定義為一個(gè)元組
元組的相關(guān)操作
由于元組是不可變的數(shù)據(jù)類型,因次只能使用索引進(jìn)行訪問,不能進(jìn)行其它操作
元組的切片操作
元組的切片操作和列表是一樣的
vart = (1,2,3,4,5,5,4,3,2,1) res = vart[:] # 獲取全部 res = vart[::] # 獲取全部 res = vart[1:] # 從索引1開始獲取到最后 res = vart[1:3] # 從索引1開始到索引3之前 res = vart[:3] # 從索引 0 開始 到 索引 3之前 res = vart[1:5:2] # 從索引1開始到索引5之前,步進(jìn)值為2 res = vart[::2] # 從索引 0 開始 到 最后 ,步進(jìn)值為2 res = vart[5:1:-1] # 從索引5開始 到索引 1,步進(jìn)值為-1 倒著輸出元組推導(dǎo)式 生成器
列表推導(dǎo)式結(jié)果返回了一個(gè)列表,元組推導(dǎo)式返回的是生成器
語法:列表推導(dǎo)式 ==> [變量運(yùn)算 for i in 容器] ==> 結(jié)果 是一個(gè) 列表元組推導(dǎo)式 ==> (變量運(yùn)算 for i in 容器) ==> 結(jié)果 是一個(gè) 生成器生成器是什么?
生成器是一個(gè)特殊的迭代器,生成器可以自定義,也可以使用元組推導(dǎo)式去定義
生成器是按照某種算法去推算下一個(gè)數(shù)據(jù)或結(jié)果,只需要往內(nèi)存中存儲(chǔ)一個(gè)生成器,節(jié)約內(nèi)存消耗,提升性能
語法
里面是推導(dǎo)式,外面是一個(gè)() 的結(jié)果就是一個(gè)生成器
自定義生成器,含有yield關(guān)鍵字的函數(shù)就是生成器
含有yield關(guān)鍵字的函數(shù),返回的結(jié)果是一個(gè)迭代器,換句話說,生成器函數(shù)就是一個(gè)返回迭代器的函數(shù)
如何使用操作生成器?
? 生成器是迭代器的一種,因此可以使用迭代器的操作方法來操作生成器
示例代碼:
# 列表推導(dǎo)式 varlist = [1,2,3,4,5,6,7,8,9] # newlist = [i**2 for i in varlist] # print(newlist) # [1, 4, 9, 16, 25, 36, 49, 64, 81]# 元組推導(dǎo)式 生成器 generator newt = (i**2 for i in varlist) print(newt) # <generator object <genexpr> at 0x1104cd4d0># 使用next函數(shù)去調(diào)用 # print(next(newt)) # print(next(newt))# 使用list或tuple函數(shù)進(jìn)行操作 # print(list(newt)) # print(tuple(newt))# 使用 for 進(jìn)行遍歷 # for i in newt: # print(i) #使用元組生成斐波那契數(shù)列 def func():n1 = 1n2 = 1n3 = 0MOD = 10 ** 9 + 7yield n1yield n2while True:n3 = n1 + n2n1 = n2n2 = n3yield n3res = func() print(next(res)) print(next(res)) print(next(res)) print(next(res)) print(next(res)) print(next(res))總結(jié)
以上是生活随笔為你收集整理的好好学python · 元组的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 好好学python · 你真的会列表吗(
- 下一篇: websocket python爬虫_p