好好学python · 元组
生活随笔
收集整理的這篇文章主要介紹了
好好学python · 元组
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
元組
- 數據類型詳解-元組
- 元組定義
- 元組的相關操作
- 元組的切片操作
- 元組推導式 生成器
- 生成器是什么?
- 語法
- 如何使用操作生成器?
數據類型詳解-元組
元組中的元素一但定義不可以修改,因此元組稱為 不可變數據類型
元組定義
- 定義空元組 變量 = (),或者 變量=tuple()
- 還可以使用 變量 = (1,2,3) 定義含有數據的元組
- 注意:如果元組中只有一個元素時,必須加逗號 變量=(1,)
- 特例:變量=1,2,3 這種方式也可以定義為一個元組
元組的相關操作
由于元組是不可變的數據類型,因次只能使用索引進行訪問,不能進行其它操作
元組的切片操作
元組的切片操作和列表是一樣的
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之前,步進值為2 res = vart[::2] # 從索引 0 開始 到 最后 ,步進值為2 res = vart[5:1:-1] # 從索引5開始 到索引 1,步進值為-1 倒著輸出元組推導式 生成器
列表推導式結果返回了一個列表,元組推導式返回的是生成器
語法:列表推導式 ==> [變量運算 for i in 容器] ==> 結果 是一個 列表元組推導式 ==> (變量運算 for i in 容器) ==> 結果 是一個 生成器生成器是什么?
生成器是一個特殊的迭代器,生成器可以自定義,也可以使用元組推導式去定義
生成器是按照某種算法去推算下一個數據或結果,只需要往內存中存儲一個生成器,節約內存消耗,提升性能
語法
里面是推導式,外面是一個() 的結果就是一個生成器
自定義生成器,含有yield關鍵字的函數就是生成器
含有yield關鍵字的函數,返回的結果是一個迭代器,換句話說,生成器函數就是一個返回迭代器的函數
如何使用操作生成器?
? 生成器是迭代器的一種,因此可以使用迭代器的操作方法來操作生成器
示例代碼:
# 列表推導式 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]# 元組推導式 生成器 generator newt = (i**2 for i in varlist) print(newt) # <generator object <genexpr> at 0x1104cd4d0># 使用next函數去調用 # print(next(newt)) # print(next(newt))# 使用list或tuple函數進行操作 # print(list(newt)) # print(tuple(newt))# 使用 for 進行遍歷 # for i in newt: # print(i) #使用元組生成斐波那契數列 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))總結
以上是生活随笔為你收集整理的好好学python · 元组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 好好学python · 你真的会列表吗(
- 下一篇: 好好学python · 字典