day9-總結(jié)

集合(set)

1.什么是集合

python內(nèi)置的容器型數(shù)據(jù)類型.可變(支持增刪),無序(不支持下標(biāo)操作)
{元素1,元素2,元素3...}
元素要求是不可變并且唯一

set1 = {1, 2, 3, 4, 'abc'}
print(set1)

空集合寫法 - 直接寫set3 = { } 類型是字典
set3 = set()

2.查

集合沒有辦法單獨取出某一個元素:只能遍歷

set1 = {1, 2, 3, 4, 'abc'}
for item in set1:
    print(item)

3.增

集合.add(元素) - 在集合中添加指定的元素

set1 = {1, 2, 3, 4, 'abc'}
set1.add(100)
print(set1)

集合 .update(序列) - 將序列中的元素(不可變的)添加到集合中

set1 = {1, 2, 3, 4, 'abc'}
set1.update('abc')

4.刪

集合.remove(元素) - 刪除集合中指定的元素(元素不存在會報錯)

set2 = {1, 2, 3, 100, 200}
set2.remove(1)
print(set2)

集合.clear() - 清空集合

5. 改 - 不支持改操作(元素不可變) 只能先刪想改的元素,在增加一個想要的元素

6.數(shù)學(xué)集合運算(集合應(yīng)用的重點)

包含關(guān)系(<=, >=),并集(&&),交集,差集,補(bǔ)集
1).包含關(guān)系(>=, <=)
集合1 >= 集合2 - 判斷集合1中是否包含集合2
2)并集(|)
集合1 | 集合2 - 將集合1集合2所有元素合并在一起產(chǎn)生一個新的集合
3)交集(&)
集合1 & 集合2 - 將集合1集合2重復(fù)的元素合并在一起產(chǎn)生一個新的集合
4)差集 (-)
集合1 - 集合2 - 求集合1除了和集合2公共的元素以外的元素
5)補(bǔ)集(^) - 求兩個集合除了公共部分剩下的部分
^ 如何打出來(Shift+6)

7.相關(guān)操作

in / not in
set()

總結(jié):集合的應(yīng)用只要表現(xiàn)在去重和集合的數(shù)學(xué)運算

# 練習(xí):用三個列表表示三門學(xué)科的選課學(xué)生姓名
# 求:選課學(xué)生人數(shù)
name = ['name1', 'name2', 'name3', 'name4', 'name5', 'name6']
name1 = ['name1', 'name2', 'name7', 'name8', 'name9', 'name10']
name2 = ['name2', 'name3', 'name4', 'name7', 'name11', 'name12']
n = set(name) | set(name1) | set(name2)
print(len(n), n)
# 求只選了第一門學(xué)科的人的數(shù)量和名字
m = set(name) - set(name1) - set(name2)
print(len(m), m)
# 求只選了一門學(xué)科的人和名字
s = set(name1) - set(name) - set(name2)
d = set(name2) - set(name) - set(name1)
e = s | d | m
print(len(e), e)
# 求選了三門學(xué)科的學(xué)生和數(shù)量 q = set(name1) & set(name) & set(name2)
print(len(q), q)
# 求只選了兩門學(xué)科的學(xué)生和數(shù)量
t = n - e - q
print(len(t), t)

容器

1容器類型: 字符串(str), 列表(list), 元祖(tuple), 字典(dict), 集合(set)

2.特點

# str: 不可變、 有序
# list: 可變、 有序
# tuple :不可變、 有序
# dict: 可變(值可變,key不可變)、無序
# set: 可變 、 無序

3.值

# str:  " "  或者 ' '或者"""  """或者''' '''(python中三個'或者三個"""也表示字符串)
# list: [ ] 元素可以是任何的數(shù)據(jù)類型,類型可以不一致,元素可以重復(fù)(實際開發(fā)時,元素類型都是一樣的最好選列表)
# tuple:() 只有一個元素時: tuple1 = (1,) 元素可以是任何的數(shù)據(jù)類型,類型可以不一致,元素可以重復(fù)
# dict: {key: value}  保存鍵值對 - key: 值   key 不可變,唯一的   value(值) 可以是任何的數(shù)據(jù)類型,類型可以不一致,可以重復(fù)
# set : {}  空集表示為 n = set{} 元素唯一不可變的

4.增

"""
list: 列表.append(元素)、 列表.insert(下標(biāo),元素)
字典:  字典[key]  =  值   、  字典.setdefault(key,值)
set: 集合.add(元素)
"""

5.刪

"""
list:del 列表[下標(biāo)]   列表.pop(下標(biāo))  列表.remove(元素)
dict:del 字典[key]  字典.pop(key)
set: 集合.remove(元素)
"""

6.改

"""
list:列表[下標(biāo)]  = 新值
dict:字典[key] = 新值
"""

7.查

"""
str:查單個, 切片, 遍歷
list:查單個, 切片, 遍歷
tuple:查單個, 切片, 遍歷
dict:查單個,遍歷
set:遍歷
"""

8.使用

"""
str:單獨文字?jǐn)?shù)據(jù)使用字符串(除了數(shù)字,和布爾表示的其他數(shù)據(jù))
list:保存多個具有相同意義的數(shù)據(jù)
tuple:多個數(shù)據(jù)的值或者是順序不能變的時候使用元祖(除了一些特殊意義的值,類似星期,其他一般不會選擇用元祖來作為容器)
dict:同時保存多個數(shù)據(jù)需要去區(qū)分的時候
set:對其他容器中的數(shù)據(jù)去重,或者做數(shù)學(xué)集合運算的時候
"""
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 集合 1.什么是集合(set) python內(nèi)置的容器型數(shù)據(jù)類型,可變(支持增刪改),無序(不支持下標(biāo)操作) 語法...
    灬小魚兒zzZ閱讀 258評論 0 0
  • 1.集合 1.什么是集合(set) python內(nèi)置的容器型數(shù)據(jù)類型.可變(支持增刪),無序(不支持下標(biāo)操作) {...
    Sun_092b閱讀 253評論 0 0
  • day9總結(jié) set 什么是集合(set)Python中內(nèi)置的容器型數(shù)據(jù)類型,可變(支持增刪),無序(不支持下標(biāo)操...
    膽小的小噴菇閱讀 210評論 0 0
  • 01.recode 1.字典 增:字典[key] = 值;字典.setdefault(key, 值); 字典.up...
    Gary134閱讀 209評論 0 0
  • 鐵打的營盤,流水的兵。鐵打的學(xué)校,流水的學(xué)生。一轉(zhuǎn)眼相識,一轉(zhuǎn)身相別。淡淡的惆悵,殷切的期望縈繞心,且讓我理一理,...
    淮河?xùn)|流閱讀 345評論 1 0

友情鏈接更多精彩內(nèi)容