python集合类型变量_Python小白学习之路(八)—【变量】【基本数据类型分类】【集合】【集合的功能】...
一、變量
變量的作用:記錄狀態的變化
變量的值:描述不同的狀態
二、五大基本數據類型的分類
五大基本數據類型(數字 字符串 列表 元祖 字典)
按照可變不可變來進行分類
可變:列表、字典
不可變:字符串、數字、元祖
我個人理解,所謂可變,是指當修改內容是,內容改變,地址不變。(即新修改的內容可以覆蓋之前的內容即為可變)
按照訪問順序來進行分類
直接訪問:數字
順序訪問:字符串、列表、元祖
映射訪問:字典
按照存放元素的個數來進行分類
容器類型:列表、元祖、字典
原子類型:數字、字符串
三、基本數據類型補充——集合(set)
set集合,是一個無序且不重復的元素集合
定義:
不同元素組成
無序
集合中的元素必須是不可變類型(字符串、數字、元祖)
集合的創建:
可以使用大括號 { } 或者 set() 函數創建集合
注意:創建一個空集合必須用 set() 而不是 { },因為 { } 是用來創建一個空字典。
創建格式:
S = {value1,value2,...}
或者
set(value)
#集合的創建(第二個集合在打印過程中自動去除重復元素)
s1 = set('hello')
s2= {123,'alex','xhg','alex'}print(s1,s2 )#執行結果
{'h', 'l', 'e', 'o'}
{'alex', 'xhg', 123}
集合的功能
1.add
Add an element to a set.
This has no effect if the element is already present.
#當添加的元素原集合中不存在時,無應答
s1 = {123,'alex','xhg'}
s1.add('lb')print(s1 )#執行結果
{'alex', 123, 'lb', 'xhg'}#當添加的元素原集合中存在時
s1 = {123,'alex','xhg'}
s1.add('alex')print(s1 )#執行結果
{'alex', 123, 'xhg'}
2.clear
Remove all elements from this set.
s1 = {123,'alex','xhg',('lucy',888),'pyh'}
s1.clear()print(s1)#執行結果
set()
3.copy
Return a shallow copy of a set.
s1= {123,'alex','xhg'}
s2=s1.copy()print(s2)#執行結果
{'xhg', 123, 'alex'}
4.difference
從數學角度來講,就是求差集(但是各自集合元素并未發生變化)
Return the difference of two or more sets as a new set.
s1 = {123,'alex','xhg',888,'english',(),''}
s2= {'alex',888,'','lb','math'}print(s1.difference(s2))#s1集合里不同于s2集合里的元素(最終輸出的元素是s1集合里的元素)#執行結果
{123, 'xhg', (), 'english'}print(s2.difference(s1))#s2集合里不同于s1集合里的元素(最終輸出的元素是s2集合里的元素)#執行結果
{'lb', 'math'}
求差集還可以用符號來表示:
s1 = {123,'alex','xhg',888,'english',(),''}
s2= {'alex',888,'','lb','math'}print(s1 -s2)print(s2 -s1)#執行結果
{123, 'xhg', (), 'english'}
{'math', 'lb'}
5.difference_update
求差集之后對集合做更新
Remove all elements of another set from this set.
s1 = {123,'alex','xhg',888,'english',(),''}
s2= {'alex',888,'','lb','math'}print(s1.difference_update(s2))print(s1)print(s2)#執行結果
None
{'english', 'xhg', (), 123}
{'', 'math', 'lb', 888, 'alex'}#從執行結果中,我們可以看出來 s1.difference_update(s2) 是將s1集合中同s2集合中元素相同的移除,s1集合內元素進行了更新
6.discard
刪除目標集合中的指定元素,若該元素不存在,則不會報錯
Remove an element from a set if it is a member.
If the element is not a member, do nothing.
s1 = {'alex',888,'','lb','math'}
s1.discard('alex')print(s1)#執行結果
{'', 'lb', 888, 'math'}
7.intersection
從數學角度來講,就是求交集(但是各自集合元素并未發生變化)
s1 = {123,'alex','xhg',888,'english',(),''}
s2= {'alex',888,'','lb','math'}print(s1.intersection(s2)) #求集合 s1 與集合 s2 共有的元素
#執行結果
{'', 'alex', 888}
求交集還可以用符號來表示:
s1 = {123,'alex','xhg',888,'english',(),''}
s2= {'alex',888,'','lb','math'}print(s1 & s2)
8.intersection_update
(同difference_update)
求交集之后對集合做一個更新
s1 = {123,'alex','xhg',888,'english',(),''}
s2= {'alex',888,'','lb','math'}
s1.intersection_update(s2)print(s1,s2)#執行結果
{'', 888, 'alex'}
{'', 'math', 888, 'lb', 'alex'}#從執行結果中,我們可以看出來 s1.intersection_update(s2) 是將s1集合s2集合中元素相同的更新放入s1集合
9.isdisjoint
比較兩個集合是否有共有元素,如果沒有的話返回 True,否則返回 False
Return True if two sets have a null intersection.
s1 = {123,'alex','xhg',888,'english',(),''}
s2= {'lb','math'}print(s1.isdisjoint(s2))#執行結果
True
10.issubset
判斷一個集合是否為另一集合的子集
Report whether another set contains this set.
s1 = {123,'alex','xhg',888,'english',(),''}
s2= {'xhg',888,'english'}print(s2.issubset(s1))#判斷集合s2是否為集合s1的子集
#執行結果
True
11.issuperset
判斷一個集合是否為另一集合的父集
s1 = {123,'alex','xhg',888,'english',(),''}
s2= {'xhg',888,'english'}print(s1.issuperset(s2))#判斷集合s1是否為集合s2的父集
#執行結果
True
12.pop
隨機刪除集合中的元素
Remove and return an arbitrary set element.
Raises KeyError if the set is empty.
s1 = {123,'alex','xhg',888,9}
s1.pop()print(s1)
13.remove
刪除目標集合中的指定元素,若該元素不存在,則會報錯(所以通常刪除集合中指定元素,不用remove,選擇discard)
Remove an element from a set; it must be a member.
If the element is not a member, raise a KeyError.
s1 = {123,'alex','xhg',888,'english'}
s1.remove(666)print(s1)
14.symmetric_difference
Return the symmetric difference of two sets as a new set.
從數學角度上來說,是求交叉補集
s1 = {123,'alex','xhg',888,'english'}
s2= {123,'alex','xhg','love'}print(s1.symmetric_difference(s2))#執行結果
{'love', 888, 'english'}#從結果上來看,交叉補集就是兩個集合除去公共部分外,各自剩下的元素組成的集合
15.symmetric_difference_update
s1 = {123,'alex','xhg',888,'english'}
s2= {123,'alex','xhg','love'}
s1.symmetric_difference_update(s2)print(s1,s2)#執行結果
{'love', 'english', 888}
{'xhg', 123, 'alex', 'love'}#從執行結果中,我們可以看出來 s1.symmetric_difference_update(s2) 是將兩集合求交叉補集并將結果更新放入s1集合
16.union
從數學角度上來說,是求并集
Return the union of sets as a new set.
s1 = {123,'alex','xhg',888,'english'}
s2= {123,'alex','xhg','love'}print(s1.union(s2))#執行結果
{'english', 'love', 888, 123, 'alex', 'xhg'}
求并集還可以用符號來表示:
s1 = {123,'alex','xhg',888,'english'}
s2= {123,'alex','xhg','love'}print(s1 |s2)#執行結果
{'english', 'love', 888, 123, 'alex', 'xhg'}
17.update
Updatea set with the union of itself and others.
s1 = {123,'alex','xhg',888,'english'}
s2= {123,'alex','xhg','love',666}print(s1.update(s2))print(s1)#執行結果
{'xhg', 'love', 888, 'english', 'alex', 666, 123}
總結
以上是生活随笔為你收集整理的python集合类型变量_Python小白学习之路(八)—【变量】【基本数据类型分类】【集合】【集合的功能】...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小明加密通道进入_「成都全接触」最新!成
- 下一篇: 2021抖音数据报告(完整版)「建议收藏