python中的set集合詳解


一、集合簡介

  • 集合的表現形式:set
  • 集合與列表很相似,區別如下:
    。 集合中的元素必須為不可變對象
    。 集合中不能出現重復的元素,即若有重復的元素則不會出現
    。 集合中的元素是無序的
  • 集合的用途: 

  •          1、可以運用集合去重,方法為將列表加入到集合中,然后進行遍歷,最后打印出去重后的結果即可;
             2、運用集合可以進行關系測試,例如,求差集、並集。

二、集合的一些操作

2.1 set()

set() 函數可以用來創建集合

my_set = set({})
print(my_set, type(my_set))
#結果為 set() <class 'set'>

 

set() 函數可以將列表和字典轉化為集合
 注:若通過 set() 將字典轉化為集合,轉化后的集合只包含字典中的鍵,不會包含值

set1 = set([1, 2, 3])
set2 = set('hello')
set3 = set({'姓名': 'zqc', '性別': ''})
print(set1, type(set1))
print(set2, type(set2))
print(set3, type(set3))
#結果為 
{1, 2, 3} <class 'set'>
{'h', 'o', 'l', 'e'} <class 'set'>
{'性別', '姓名'} <class 'set'>

2.2 通過索引取值

  • 因為集合本身是無序的,所以不能直接通過索引取值
  • 先將集合轉化為列表,轉化后的列表可以通過索取值
my_set = set([1, 2, 3])
print(list(my_set)[1])
#結果為 2

3.2 in、not in

  • 判斷指定元素是否在集合中
  • 返回布爾類型

3.3 len()

  • len() 用來獲取集合長度,即集合中有幾個元素
  • 返回一個 int 類型

3.4 add()

  • add() 用來向集合中添加一個元素
my_set = {11, 22, 33}
my_set.add(44)
print(my_set)
#結果為 {33, 11, 44, 22}

3.5 update()

  • update() 用來將一個集合中的元素添加到另一個集合中
my_set = {11, 22, 33}
your_set = {44}
my_set.update(your_set)
print(my_set)
#結果為 {33, 11, 44, 22}

3.6 pop()

  • pop() 用來隨機刪除集合中的一個元素
  • pop() 有返回值
my_set = {11, 22, 33}
d = my_set.pop()
print(d)
print(my_set)
#結果為 
33
{11, 22}

3.7 remove()

  • remove() 用來刪除一個指定的元素
my_set = {11, 22, 33}
my_set.remove(22)
print(my_set)
#結果為 {33, 11}

3.8 clear()

  • clear() 用來清空集合
my_set = {11, 22, 33}
my_set.clear()
print(my_set)
#結果為 set()

三、集合的運算

3.1 交集 &

  • 返回一個集合
  • 所有集合公共的區域
my_set = {1, 2, 3, 4, 5}
your_set = {3, 4, 5, 6, 7}
print(my_set & your_set)
#結果為 {3, 4, 5}

3.2 並集 |

  • 返回一個集合
  • 所有集合除去不可重復后的相加
my_set = {1, 2, 3, 4, 5}
your_set = {3, 4, 5, 6, 7}
print(my_set | your_set)
#結果為 {1, 2, 3, 4, 5, 6, 7}

3.3 差集 -

  • 返回的是一個集合
  • 集合除去公共的部分
my_set = {1, 2, 3, 4, 5}
your_set = {3, 4, 5, 6, 7}
print(my_set - your_set)
print(your_set - my_set)
#結果為
{1, 2}
{6, 7}

3.4 異或 ^

  • 返回的是一個集合
  • 異或為不相交的部分
my_set = {1, 2, 3, 4, 5}
your_set = {3, 4, 5, 6, 7}
print(my_set ^ your_set)
#結果為 {1, 2, 6, 7}

3.5 集合間的關系 ≤、<、≥、>

  • 判斷一個集合是否是另一個集合的子集:<=
  • 判斷一個集合是否是另一個集合的真子集:<
  • 判斷一個集合是否是另一個集合的超集:>=
  • 判斷一個集合是否是另一個集合的真超集:>
  • 返回布爾類型


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM