日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python基礎(chǔ)之元組函數(shù)(11)

系統(tǒng) 2007 0

元組:
一組有序數(shù)據(jù)的組合。元組不可以修改。
元組的定義:

  • 空元組:

    • 變量 = () 或者 變量= tuple()
  • 單個(gè)元素的元組
    變量 = (值,)

  • 具有多個(gè)數(shù)據(jù)的元組

    • 變量 = (值,值…) 或者 變量 = tuple(容器數(shù)據(jù))
      基本操作:

只可以使用索引訪問(wèn)元組,不可以進(jìn)行其他操作。
tuple1=(“你”,“我”,“他”,(“你得”,“我的”))
print(tuple1[3][1])
分片: 操作和列表一致。

tuple1=(“你”,“我”,“他”,(“你得”,“我的”))
print(tuple1[0:2:2])
常用函數(shù)
max() 獲取元組中的最大值
min() 獲取元組中的最小值
len() 獲取元組的長(zhǎng)度
tuple() 創(chuàng)建元組或者將其他數(shù)據(jù)轉(zhuǎn)化為元組
元組的遍歷: 同列表一樣,嵌套元組和嵌套列表也一致

tuple1=(“你”,“我”,“他”,(“你得”,“我的”))
for name in tuple1:
for i in name:
print(i)
元組推導(dǎo)式:

元組推導(dǎo)式的結(jié)果不是元組,而是生成器(生成器需要操作才會(huì)得到結(jié)果)
語(yǔ)法同列表推導(dǎo)式一樣
基本推導(dǎo)式: 結(jié)果變量 = (變量 for 變量 in 元組)

from collections import Iterator
res=(i*i for i in range(6))
print(res,type(res))
print(isinstance(res,Iterator))
print(next(res))
print(next(res))
print(next(res))
print(next(res))

for i in res:
print(i)

print(tuple(res))

元組除了不能修改和刪除,其他的和列表相關(guān)操作一模一樣,
元組函數(shù)可以使用 index 和 count,只能是元組相關(guān)的獲取操作
比如更改,刪除,排序,翻轉(zhuǎn),清空都不可以
tuple=(1,2,3,4,5)
res=tuple.index(2)
print(res)

tuple=(1,2,3,4,5,2,2)
res=tuple.count(2)
print(res)
元組推導(dǎo)式是生成器(generator)
定義:生成器是特殊的迭代器,可以自定義.按照某種算法推算下一個(gè)數(shù)據(jù),只需往內(nèi)存里存一個(gè)生成器,節(jié)省空間
語(yǔ)法:(1)里面是推導(dǎo)式,外面是()的是生成器
(2)含有yield關(guān)鍵字的函數(shù)是生成器函數(shù),它可以返回一個(gè)迭代器,換句話(huà)說(shuō),生成器是一個(gè)返回迭代器的函數(shù)。
def func():
yield 1
print(“一次”)
yield 2
print(“二次”)
yield 3
print(“三次”)
res=func()
print(next(res))
print(next(res))
print(next(res))

for i in res:
print(i)

print(tuple(res))
yield 有點(diǎn)像 return
共同點(diǎn)在于:執(zhí)行到這句話(huà)會(huì)把值返回出去
不同點(diǎn)在于:再次執(zhí)行生成器時(shí)會(huì)從上一次yield執(zhí)行的位置繼續(xù)向下走,它會(huì)記住上一次離開(kāi)時(shí)的狀態(tài).
每次返回,都會(huì)記住當(dāng)前代碼執(zhí)行的位置,再次調(diào)用的時(shí)候會(huì)從上次位置繼續(xù)向下執(zhí)行
集合
確定的一組無(wú)序數(shù)據(jù)的組合。

特征:
1.由多個(gè)數(shù)據(jù)組成的復(fù)合型數(shù)據(jù)(容器類(lèi)數(shù)據(jù)) 2.集合是沒(méi)有順序的

集合的操作:

1.創(chuàng)建集合

空集合 變量 = set()

具有多個(gè)數(shù)據(jù)的集合 變量 = {數(shù)據(jù),數(shù)據(jù),數(shù)據(jù)…}

1.集合創(chuàng)建時(shí)如果存在相同的數(shù)據(jù),集合會(huì)只保留一份。

2.集合可以存放的數(shù)據(jù)類(lèi)型有Number,String,Tuple,冰凍集合類(lèi)型

集合沒(méi)有添加,獲取,刪除及修改的【基本操作】!

集合的序列操作:由于集合數(shù)據(jù)比較特殊,集合操作非常少

成員檢測(cè)
in
數(shù)據(jù) in 集合

            
                  not in
        數(shù)據(jù) not in 集合

            
          

集合的序列函數(shù):
len() 檢測(cè)容器的長(zhǎng)度

            
              max()   獲取容器中的最大值

min()  獲取容器中的最小值

set()   創(chuàng)建空集合或者將其他數(shù)據(jù)類(lèi)型轉(zhuǎn)換為集合

            
          

集合的遍歷操作: 只能使用for…in 來(lái)遍歷集合
set={1,2,4,5,6,8,10}
for i in set:
print(i)
集合的推導(dǎo)式/集合內(nèi)涵:
普通的集合推導(dǎo)式: 變量 = {變量 for 變量 in 集合}
res={i 2 for i in {1,2,3,4}}
print(res)
帶有判斷條件的集合推導(dǎo)式
變量 = {變量 for 變量 in 集合 if 條件表達(dá)式}
res={i
2 for i in {1,2,3,4,5,9,10} if i%2==0}
print(res)
多循環(huán)的集合推導(dǎo)式:
變量 = {變量1和變量2的操作 for 變量1 in 容器 for 變量2 in 容器}
res={i*j for i in range(1,5) for j in range(2,3)}
print(res)
帶有判斷條件的多循環(huán)推導(dǎo)式:
變量 = {變量1和變量2的操作 for 變量1 in 容器 for 變量2 in 容器 if 條件表達(dá)式}
集合專(zhuān)用的函數(shù):

            
              add()   向集合中添加一個(gè)元素/數(shù)據(jù)
    格式:集合.add(數(shù)據(jù))
    返回值:None
    注意:操作直接修改原有集合。

            
          

set1={1,2,3,4,5,6}
set1.add(7)
print(set1)

            
              pop()   隨機(jī)刪除集合中的一個(gè)元素/數(shù)據(jù)
    格式:集合.pop()
    返回值:隨機(jī)刪除的數(shù)據(jù)
    注意:操作直接修改原有集合。

            
          

set1={1,2,3,4,5,6}
set1.pop()
print(set1)

            
              remove()    刪除指定的數(shù)據(jù),數(shù)據(jù)不存在會(huì)報(bào)錯(cuò)
    格式:集合.remove(數(shù)據(jù))
    返回值:None
    注意:操作直接修改原有集合。

            
          

set1={1,2,3,4,5,6}
set1.remove(1)
print(set1)

            
              discard()  刪除指定的數(shù)據(jù),數(shù)據(jù)不存在不進(jìn)行操作
    格式:集合.discard(數(shù)據(jù))
    返回值:None
    注意:操作直接修改原有集合。

            
          

set1={1,2,3,4,5,6}
set1.discard(1)
print(set1)

            
              clear() 清空集合
    格式:集合.clear()
    返回值:None
    注意:操作直接修改原有集合。

            
          

set1={1,2,3,4,5,6}
set1.clear()
print(set1)

            
              copy()  復(fù)制集合
    格式:集合.copy()
    返回值:None
    注意:復(fù)制的集合和原集合內(nèi)容一樣,但是不是一個(gè)集合

            
          

set1={1,2,3,4,5,6}
set2=set1.copy()
set1.add(7)
print(set1)
print(set2)

            
              #集合運(yùn)算符:
& 交集

            
          

set1={1,2,3,4,5,6}
set2={3,4,5,6,7,9,10}
res=set1&set2
print(res)

            
              | 并集

            
          

set1={1,2,3,4,5,6}
set2={3,4,5,6,7,9,10}
res=set1|set2
print(res)

            
              - 差集

            
          

set1={1,2,3,4,5,6}
set2={3,4,5,6,7,9,10}
res=set1-set2
print(res)

            
              ^ 對(duì)稱(chēng)差集

            
          

set1={1,2,3,4,5,6}
set2={3,4,5,6,7,9,10}
res=set1^set2
print(res)

            
              #集合運(yùn)算函數(shù):
差集:difference()  *
格式:集合1.difference(集合2)
返回值:差集的集合

            
          

set1={1,2,3,4,5,6}
set2={3,4,5,6,7,9,10}
res=set2.difference(set1)
print(res)

            
              更新差集:difference_update()
格式:集合1.difference_update(集合2)
返回值:None
注意:所謂更新差集,就是計(jì)算差集之后將結(jié)果重新賦值給第一個(gè)集合的變量而已

            
          

set1={1,2,3,4,5,6}
set2={3,4,5,6,7,9,10}
set2.difference_update(set1)
print(set2)

            
              交集:intersection()
格式:集合1.intersection(集合2)
返回值:交集的集合

            
          

set1={1,2,3,4,5,6}
set2={3,4,5,6,7,9,10}
res=set2.intersection(set1)
print(res)

            
              更新交集:intersection_update()
格式:集合1.intersection_update(集合2)
返回值:None
注意:更新交集,就是計(jì)算交集之后將結(jié)果重新賦值給第一個(gè)集合的變量

            
          

set1={1,2,3,4,5,6}
set2={3,4,5,6,7,9,10}
set2.intersection_update(set1)
print(set2)

            
              并集:union()
格式:集合1.union(集合2)
返回值:并集結(jié)果

            
          

set1={1,2,3,4,5,6}
set2={3,4,5,6,7,9,10}
res=set2.union(set1)
print(res)

            
              更新并集:update()
格式:集合1.update(集合2)
返回值:None
注意:更新并集,就是計(jì)算并集之后將結(jié)果重新賦值給第一個(gè)集合的變量

            
          

set1={1,2,3,4,5,6}
set2={3,4,5,6,7,9,10}
set2.update(set1)
print(set2)

            
              對(duì)稱(chēng)差集:symmetric_difference()
格式:集合1.symmetric_difference(集合2)
返回值:對(duì)稱(chēng)差集的集合

            
          

set1={1,2,3,4,5,6}
set2={3,4,5,6,7,9,10}
res=set2.symmetric_difference(set1)
print(res)

            
              更新對(duì)稱(chēng)差集運(yùn)算:symmetric_difference_update()
格式:集合1.symmetric_difference_update(集合2)
返回值:None
注意:計(jì)算對(duì)稱(chēng)差集的結(jié)果直接更新到集合1的變量當(dāng)中

            
          

set1={1,2,3,4,5,6}
set2={3,4,5,6,7,9,10}
set2.symmetric_difference_update(set1)
print(set2)

            
              檢測(cè)是否是超集:issuperset()
格式:集合1.issuperset(集合2)
返回值:布爾值

            
          

set1={1,2,3,4,5,6}
set2={3,4,5,6,7,9,10}
res=set2.issuperset(set1)
print(res)

            
              檢測(cè)是否是子集:issubset()
格式:集合1.issubset(集合2)
返回值:布爾值

            
          

set1={1,2,3,4,5,6}
set2={3,4,5,6,7,9,10}
res=set2.issubset(set1)
print(res)

            
              檢測(cè)是否不相交的函數(shù): isdisjoint()
格式:集合1.isdisjoint(集合2)
返回值:布爾值
注意:集合不相交結(jié)果為T(mén)rue,集合相交,結(jié)果為False

            
          

set1={1,2,3,4,5,6}
set2={3,4,5,6,7,9,10}
res=set2.isdijoint(set1)
print(res)

冰凍集合/固定集合:一旦創(chuàng)建就不可以進(jìn)行修改的集合。一種數(shù)據(jù)類(lèi)型。

如果把集合比作列表,冰凍集合就是元組。

#創(chuàng)建冰凍集合
空的冰凍集合:
變量 = frozenset()

創(chuàng)建具有數(shù)據(jù)的冰凍集合
變量 = frozenset(容器數(shù)據(jù))

冰凍集合的作用:
為集合的操作提供一個(gè)不可以改變的對(duì)照集合。

冰凍集合除了不能修改之外,其余和集合一樣!

copy() 可以使用
difference() 差集 可以使用
difference_update() 更新差集 不可以使用
intersection() 交集 可以使用
intersection_update()更新交集 不可以使用
union() 并集 可以使用
update()更新并集 不可以使用
issuperset() 檢測(cè)超集 可以使用
issubset() 檢測(cè)子集 可以使用
isdisjoint() 檢測(cè)是否不相交 可以使用
symmetric_difference()可以使用(對(duì)稱(chēng)差集)
symmetric_difference_update()不可以使用(更新對(duì)稱(chēng)差集)

list1 = [“小王”,“小八”,“小霸王”,“小鳥(niǎo)”]
set1 = frozenset(list1)
set2 = frozenset((“小霸王”,“孫策”,“霸王”,“項(xiàng)羽”))
res = set1.intersection(set2)
print(res)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 大安市| 三门县| 棋牌| 松江区| 通州区| 孝义市| 湘潭市| 南召县| 开远市| 凉山| 白银市| 乐清市| 依安县| 陇南市| 沧源| 六盘水市| 益阳市| 卢龙县| 施甸县| 山阴县| 南投县| 泸州市| 巴彦县| 乡城县| 德惠市| 洛阳市| 柯坪县| 云和县| 沁阳市| 潜山县| 鹿邑县| 南华县| 通渭县| 彰化县| 米林县| 宜君县| 西林县| 宁远县| 张家川| 当雄县| 芜湖县|