馬哥部落格作業第四周

2022-09-03 22:39:32 字數 3675 閱讀 1385

python集合,簡稱集

由任意個元素構成的集體。高階語言都實現了這個非常重要的資料結構型別。python中,它是可變的、無序的、不重複的元素的集合。

集合的初始化

set()->newemptysetobject

set(iterable)->newsetobject

s1=set()

s2=set(range(5))

s3=set([1,2,3])

s4=set('abcdabcd')

s5={}#這是什麼?  這是字典

s6=s7=

元素性質

去重:在集合中,所有元素必須相異

無序:因為無序,所以不可索引

可雜湊:python集合中的元素必須可以hash,即元素都可以使用內建函式hash

目前學過不可hash的型別有:list、set、bytearray

可迭代:set中雖然元素不一樣,但元素都可以迭代出來

增加add(elem)

增加乙個元素到set中

如果元素存在,什麼都不做

update(*others)

合併其他元素到set集合中來

引數others必須是可迭代物件

就地修改

刪除remove(elem)

從set中移除乙個元素

從set中移除乙個元素

元素不存在,什麼都不做

移除並返回任意的元素。為什麼是任意元素?#因為字典無序

空集返回keyerror異常

clear()

移除所有元素

修改集合型別沒有修改。因為元素唯一。如果元素能夠加入到集合中,說明它和別的元素不一樣。

所謂修改,其實就是把當前元素改成乙個完全不同的元素,就是刪除加入新元素。

索引非線性結構,不可索引。

遍歷只要是容器,都可以遍歷元素。但是效率都是o(n)

成員運算子in

可雜湊數值型int、float、complex

布林型true、false

字串string、bytes

tuple

none

以上都是不可變型別,都是可雜湊型別,hashable

set的元素必須是可hash的。

集合概念

全集所有元素的集合。例如實數集,所有實數組成的集合就是全集

子集subset和超集superset

乙個集合a所有元素都在另乙個集合b內,a是b的子集,b是a的超集

真子集和真超集

a是b的子集,且a不等於b,a就是b的真子集,b是a的真超集

並集:多個集合合併的結果

交集:多個集合的公共部分

差集:集合中除去和其他集合公共部分

並集

將兩個集合a和b的所有的元素合併到一起,組成的集合稱作集合a與集合b的並集

union(*others)返回和多個集合合併後的新的集合

|運算子過載,等同union

update(*others)和多個集合合併,就地修改

|=等同update

交集

集合a和b,由所有屬於a且屬於b的元素組成的集合

intersection(*others)返回和多個集合的交集

&等同intersection

intersection_update(*others)獲取和多個集合的交集,並就地修改

&=等同intersection_update

差集集合a和b,由所有屬於a且不屬於b的元素組成的集合

difference(*others)返回和多個集合的差集

-等同difference

difference_update(*others)獲取和多個集合的差集並就地修改

-=等同difference_update

s5 =

s6 =

print(s5 - s6)

print(s5.difference(s6))

對稱差集

集合a和b,由所有不屬於a和b的交集元素組成的集合,記作(a-b)∪(b-a)

symmetric_differece(other)返回和另乙個集合的對稱差集

^等同symmetric_differece

symmetric_differece_update(other)獲取和另乙個集合的對稱差集並就地修改

^=等同symmetric_differece_update

s7 =

s8 =

print(s7 ^ s8)

print(s7.symmetric_difference(s8))

其它集合運算

issubset(other)、<=判斷當前集合是否是另乙個集合的子集

set1=判斷當前集合是否是other的超集

set1>set2判斷set1是否是set2的真超集

isdisjoint(other)當前集合和另乙個集合沒有交集,沒有交集,返回true

馬哥部落格作業第四周

1.編寫指令碼 root bin systeminfo.sh,顯示當前主機系統資訊,包括主機名 ipv4位址 作業系統版本 核心版本 cpu型號 記憶體大小 硬碟大小。bin bash the script is systeminfo.sh hostname hostname system cat ...

馬哥教育 第四周作業

1 統計出 etc passwd檔案中其預設shell為非 sbin nologin的使用者個數,並將使用者都顯示出來 2 查出使用者uid最大值的使用者名稱 uid及shell型別 3 統計當前連線本機的每個遠端主機ip的連線數,並按從大到小排序 4 編寫指令碼disk.sh,顯示當前硬碟分割槽中...

馬哥的linux培訓第四周作業

課程內容 各種k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括開發測試環境部署k8s,和生產環境部署k8s。介紹主要的k8s資源的使用配置和命令。包括configmap,pod,service,replicaset,namespa...