python的集合型別

2021-08-20 10:22:51 字數 3701 閱讀 1427

pythoners=['王大炮','李二丫','陳獨秀','艾里克斯','wxx','歐德博愛']

linuxers=['陳獨秀','wxx','egon','張全蛋']

l1=forstuinpythoners:

ifstuinlinuxers:

# print(stu)

print(l1)

l2=forstuinpythoners:

ifstunot inlinuxers:

# print(stu)

print(l2) #求出pythoners中除去與linuxers相同的值

一:基本使用

1 用途: 關係運算、去重

2 定義方式:{}內用逗號分隔開多個元素,每乙個元素都必須是不可變(即可hash)型別

強調:2.1 集合內元素都必須是不可變(即可hash)型別

2.2 集合內的元素無序

2.3 集合內的元素不能重複

s= #s=set()

print(type(s))

s=}s=

foritemins:

print(item)

s=s=

print(s)

s=set('hello')

print(s)

單純的用集合去重,需要注意的問題是

1、去重的目標所包含的值必須都為不可變型別

2、去重的結果會打亂原來的順序

names=['asb','asb','asb','wsb','wsb','egon_nb',[1,2,3]]

s=set(names)

names=list(s)

print(names)

3 常用操作+內建的方法

優先掌握的操作:

1、長度len

pythoners=

print(len(pythoners))

2、成員運算in和notinprint('李二丫'inpythoners)

pythoners=

linuxers=

3、|並集

print(pythoners | linuxers)

print(pythoners.union(linuxers))#輸出兩個集合內所有的值

4、&交集

print(pythoners & linuxers)

print(pythoners.intersection(linuxers))

print(linuxers & pythoners) #兩個集合內相同的值

5、-差集

print(pythoners - linuxers)

print(pythoners.difference(linuxers))

print(linuxers - pythoners)

print(linuxers.difference(pythoners)) #第乙個集合所有值減去兩個集合相同的值

6、^對稱差集

print(pythoners ^ linuxers)

print(pythoners.symmetric_difference(linuxers)) #兩個集合所有的值去除兩個集合內相同的值

print(linuxers ^ pythoners)

7、==

s1=s2=

print(s1 == s2) #兩個集合所有的值相同

8、父集(包含關係):>,>=

s1=s2=

print(s1 > s2) # s1包含s2

print(s1.issuperset(s2))

print(s2.issubset(s1))

s3=print(s1 > s3) #不能比較

s1=s2=

print(s1 >= s2) #只要大於的等於乙個成立就滿足

9、子集(被包含的關係):<,<=

s1=s1.add(6)

print(s1) #加乙個值

s1.update()

print(s1) #加入沒有的值,重複的不新增

res=s1.pop()

print(res) #隨便刪除乙個值

res=s1.remove(4)

print(res)

print(s1) #刪除直接加上值,單純刪除

s1=s2=

s1=s1 - s2

print(s1)

s1.difference_update(s2) # s1=s1 - s2

print(s1) #

s1=s1.pop()

s1.remove(7)

s1.discard(7) # 即便要刪除的元素不存在也不會報錯

s1=s2=

print(s1.isdisjoint(s2))#判斷兩個沒有交集則為true

#二:該型別總結

1 存乙個值or存多個值

可以存多個值,值都必須為不可變型別

2 有序or無序

無序3 可變or不可變

set集合是可變型別

s=print(id(s))

s.add(4)

print(s)

print(id(s))

********************=集合的去重*************************=

單純的用集合去重,需要注意的問題是

1、去重的目標所包含的值必須都為不可變型別

2、去重的結果會打亂原來的順序

names=['asb','asb','asb','wsb','wsb','egon_nb',[1,2,3]]

s=set(names)

names=list(s)

print(names)#轉換型別

stu_info=[,,

,,

,]new_info=

forinfoinstu_info:

ifinfonot innew_info:

print(new_info)#不改變順序的情況下去重

python集合型別

集合也是容器,其內元素都是無序 唯 一 不可變的。它常用來做成員測試 移除重複資料 資料計算 比如交集 並集 差集 集合set是dict的無value版。集合也使用大括號包圍 s type s set中的元素和dict一樣也是通過hash值來儲存的 將元素hash 得到hash值,儲存到set中。所...

python 的集合型別詳解

目錄 無序不重複的元素的程式設計客棧組合 利用集合可以刪除列表中的重複項 set 唱用作去重操作 分類 可變集合 set 不可變集合 frozenset 用set 函式 可變集合 或frozenset 函式 不可變集合 建立 set frozenset 不可變集合是可雜湊的,可變集合是可雜湊的 為差...

Python集合(set)型別

python的set和其他語言類似,是乙個無序不重複元素集,基本功能包括關係測試和消除重複元素.集合物件還支援union 聯合 intersection 交 difference 差 和sysmmetric difference 對稱差集 等數 算.sets 支援 x in set,len set ...