日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

好好学python · 元组

發(fā)布時(shí)間:2025/4/5 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 好好学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)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。