千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > python中set()函數的用法

python中set()函數的用法

來源:千鋒教育
發布人:xqq
時間: 2024-03-12 20:20:13 1710246013

Python中的set()函數是用來創建一個無序的、不重復的元素集合。它可以用于去除列表、元組或字符串中的重復元素,也可以用于數學中的集合運算,如并集、交集、差集等。

_x000D_

set()函數的語法如下:

_x000D_

`python

_x000D_

set(iterable)

_x000D_ _x000D_

其中,iterable是可迭代對象,如列表、元組或字符串。

_x000D_

下面,我們來詳細了解一下set()函數的用法。

_x000D_

## 去除重復元素

_x000D_

set()函數最常見的用法是去除列表、元組或字符串中的重復元素。例如,我們有一個列表,其中包含了一些重復的元素:

_x000D_

`python

_x000D_

lst = [1, 2, 3, 2, 4, 1, 5, 6, 3]

_x000D_ _x000D_

我們可以使用set()函數將其轉換為一個集合,從而去除重復元素:

_x000D_

`python

_x000D_

s = set(lst)

_x000D_

print(s)

_x000D_ _x000D_

輸出結果為:

_x000D_ _x000D_

{1, 2, 3, 4, 5, 6}

_x000D_ _x000D_

可以看到,集合中只保留了列表中的不重復元素。

_x000D_

同樣的,我們也可以對元組或字符串進行去重操作:

_x000D_

`python

_x000D_

t = (1, 2, 3, 2, 4, 1, 5, 6, 3)

_x000D_

s = set(t)

_x000D_

print(s)

_x000D_

str = "hello world"

_x000D_

s = set(str)

_x000D_

print(s)

_x000D_ _x000D_

輸出結果分別為:

_x000D_ _x000D_

{1, 2, 3, 4, 5, 6}

_x000D_

{'r', 'd', 'h', 'e', 'o', 'l', 'w', ' '}

_x000D_ _x000D_

## 集合運算

_x000D_

除了去重,set()函數還可以用于數學中的集合運算,如并集、交集、差集等。

_x000D_

### 并集

_x000D_

兩個集合的并集是指包含兩個集合中所有元素的集合。我們可以使用union()方法或|運算符來計算兩個集合的并集。

_x000D_

`python

_x000D_

s1 = {1, 2, 3}

_x000D_

s2 = {3, 4, 5}

_x000D_

s3 = s1.union(s2)

_x000D_

s4 = s1 | s2

_x000D_

print(s3)

_x000D_

print(s4)

_x000D_ _x000D_

輸出結果為:

_x000D_ _x000D_

{1, 2, 3, 4, 5}

_x000D_

{1, 2, 3, 4, 5}

_x000D_ _x000D_

### 交集

_x000D_

兩個集合的交集是指包含兩個集合有元素的集合。我們可以使用intersection()方法或&運算符來計算兩個集合的交集。

_x000D_

`python

_x000D_

s1 = {1, 2, 3}

_x000D_

s2 = {3, 4, 5}

_x000D_

s3 = s1.intersection(s2)

_x000D_

s4 = s1 & s2

_x000D_

print(s3)

_x000D_

print(s4)

_x000D_ _x000D_

輸出結果為:

_x000D_ _x000D_

{3}

_x000D_

{3}

_x000D_ _x000D_

### 差集

_x000D_

兩個集合的差集是指包含屬于第一個集合而不屬于第二個集合的元素的集合。我們可以使用difference()方法或-運算符來計算兩個集合的差集。

_x000D_

`python

_x000D_

s1 = {1, 2, 3}

_x000D_

s2 = {3, 4, 5}

_x000D_

s3 = s1.difference(s2)

_x000D_

s4 = s1 - s2

_x000D_

print(s3)

_x000D_

print(s4)

_x000D_ _x000D_

輸出結果為:

_x000D_ _x000D_

{1, 2}

_x000D_

{1, 2}

_x000D_ _x000D_

## 相關問答

_x000D_

### 1. set()函數的返回值是什么類型?

_x000D_

set()函數返回的是一個集合類型的對象。

_x000D_

### 2. set()函數去重后的元素順序是否與原列表、元組或字符串的順序一致?

_x000D_

set()函數去重后的元素是無序的,順序與原列表、元組或字符串的順序不一定一致。

_x000D_

### 3. set()函數能否去重一個嵌套列表中的元素?

_x000D_

set()函數只能去重一維列表、元組或字符串中的元素,無法去重嵌套列表中的元素。如果需要去重嵌套列表中的元素,可以使用列表推導式實現。

_x000D_

### 4. 如何判斷一個元素是否在集合中?

_x000D_

可以使用in關鍵字來判斷一個元素是否在集合中。例如:

_x000D_

`python

_x000D_

s = {1, 2, 3}

_x000D_

if 1 in s:

_x000D_

print("1在集合中")

_x000D_

else:

_x000D_

print("1不在集合中")

_x000D_ _x000D_

輸出結果為:

_x000D_ _x000D_

1在集合中

_x000D_ _x000D_

### 5. 如何向集合中添加元素?

_x000D_

可以使用add()方法向集合中添加一個元素,或使用update()方法向集合中添加多個元素。例如:

_x000D_

`python

_x000D_

s = {1, 2, 3}

_x000D_

s.add(4)

_x000D_

print(s)

_x000D_

s.update([5, 6])

_x000D_

print(s)

_x000D_ _x000D_

輸出結果為:

_x000D_ _x000D_

{1, 2, 3, 4}

_x000D_

{1, 2, 3, 4, 5, 6}

_x000D_ _x000D_

### 6. 如何從集合中刪除元素?

_x000D_

可以使用remove()方法或discard()方法從集合中刪除一個元素,或使用pop()方法隨機刪除一個元素。例如:

_x000D_

`python

_x000D_

s = {1, 2, 3, 4, 5}

_x000D_

s.remove(3)

_x000D_

print(s)

_x000D_

s.discard(6)

_x000D_

print(s)

_x000D_

x = s.pop()

_x000D_

print(x)

_x000D_

print(s)

_x000D_ _x000D_

輸出結果為:

_x000D_ _x000D_

{1, 2, 4, 5}

_x000D_

{1, 2, 4, 5}

_x000D_

{2, 4, 5}

_x000D_ _x000D_

### 7. 如何清空一個集合?

_x000D_

可以使用clear()方法清空一個集合。例如:

_x000D_

`python

_x000D_

s = {1, 2, 3}

_x000D_

s.clear()

_x000D_

print(s)

_x000D_ _x000D_

輸出結果為:

_x000D_ _x000D_

set()

_x000D_ _x000D_

### 8. 集合和列表有什么區別?

_x000D_

集合是無序的、不重復的元素集合,而列表是有序的、可重復的元素序列。集合的主要作用是去重和集合運算,而列表的主要作用是存儲一組有序的元素。

_x000D_
tags: python教程
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
日本中文字幕a∨在线观看国产精品 | 午夜福利免费体检区 | 亚洲日本va在线视频 | 在线视频国内亚洲 | 一本精品日本在线视频精品 | 亚洲国产熟女激情 |