日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python集合应用场景_十、python 集合的定义与使用

發布時間:2023/12/19 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python集合应用场景_十、python 集合的定义与使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、集合的定義

定義:由不同元素組成的集合,集合是一組無序排列 可hash值,可作為字典的key。

特性:集合的目的是將不同的值存放在一起,不同的集合間用來做關系運算,無須糾結于集合中的單個值。

(1、不同元素組成 2、無序 3、集合中的元素必須是不可變類型)

二、集合的使用

1、聲明集合

jihe = {1,2,3,4,5}#與字典看上去類似,但是是不一樣的。字典是 dict1 = {key:value,key2:value2,}需要key

(1)自動去重

注意,集合是有不同元素組成,所以即便里面的值重復了,也會去重。

例:

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

運行結果

(2)打印內容是無序的

set1 = {"陳司","怎能","不","是","大帥哥"}print(set1)

運行結果

2、添加元素 set.add() 方法

例:

set1 = {1,3}

set1.add(2)print(set1)

運行結果

3、刪除集合元素。

(1)set.pop() 與 set.remove()

set1 = {"s", 1, "234", 2}#pop會從集合中隨機刪除一個數

v =set1.pop()print(set1, "v =", v)#remove 可以傳參數刪除指定的值,但是要注意,如果傳的值不存在會報錯。慎用。

set1.remove(2)print(set1)

運行結果

(2)set.discard()

與remove()用法相同,但是如果元素不存在,不會報錯。

set1 = {"s", 1, "234", 2}

b= set1.discard("123123")print(b)

set1.discard("s")print(set1)

運行

三、集合的運算

在python 中,集合的概念,有點類似數學之中集合的概念。可以求出交集并集等運算操作。

1、交集 set.intersection()

場景:有兩組學生,第一組學生,選修了語文課,第二組學生,選修了數學課。但是其中有一些學生即選修了語文,也選修了數學,要求快速定位到這種學生。

例1,非集合方式。

#學習數學的人

stu_shuxue = ["陳司","李大","王二"]#學習語文的人

stu_yuwen = [ "陳司","王二"]#兩者都學的人,先暫定為空

stu_double =[]#循環輸出學習數學的人

for stu instu_shuxue:#如果學習數學的人,也在stu_yuwen 學習語文的人里。就是兩者都學的人。并追加到stu_double集合。

if stu instu_yuwen:

stu_double.append(stu)print(stu_double)

運行結果

例2,集合方式

stu_shuxue = {"陳司", "李大", "王二"}

stu_yuwen= {"陳司", "王二"}#取交集

print(stu_shuxue.intersection(stu_yuwen))

#寫法2

print(stu_shuxue&stu_yuwen)

運行

2、并集,set.union()方法

理解:把兩個結合中所有元素組合在一起,并排重后取出結果。

場景:還是剛才的兩組學生,求選修了數學和語文的全部同學名單。

stu_shuxue = {"陳司", "李大", "王二"}

stu_yuwen= {"陳司", "王二"}#取并集

print(stu_shuxue.union(stu_yuwen))#寫法2

print(stu_shuxue | stu_yuwen)

運行

3、差集 set.difference()

理解:兩個集合相減,A 減 B ,A 里有 1、2、3 B里有 2、3、4 如果 A 與B 的差集,會發現A 有 1 是B里沒有的。所以A 減 B 等于 1 ,反過來 B 減 A 就等于4 ,因為4 是A 集合里沒有的元素。

也就是說,發起差集的集合,會把自己有,而對方沒有的元素得到。說的直白點,我是帥,高,富。 你是 丑 , 高,富。咱們都有高和富,我減去你就是帥。你減去我就是丑。

例:

set1 = {"陳司","高","富","帥"}

set2= {"某人","高","富","丑"}

#方法1print(set1.difference(set2))

#方法2print(set1-set2)

運行結果

4、交叉補集 set.symmetric_difference()

理解。集合A 是1、2、3 集合B 是 2、3、4 交叉補集就只保留 1 和 4 。因為 1 是 A 獨有的, 4 是B 獨有的。交叉補集會去掉共有的部分,只保留雙方獨有的部分。

場景:選修語文的有一組學生,選修數學的有一組學生。已知有的學生既選修了數學,又同時選修了語文,求只選修了一門課程的學生。這種情況就適合交叉補集。

#學習語文的

set_yuwen = {"陳司","A","B","C"}

#學習數學的

set_shuxue= {"某人","A","B","C"}

#方法1print(set_shuxue.symmetric_difference(set_yuwen))

#方法2print(set_yuwen^set_shuxue)

運行結果

總結

以上是生活随笔為你收集整理的python集合应用场景_十、python 集合的定义与使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。