1. 程式人生 > 其它 >Python學習之set集合

Python學習之set集合

set集合

集合是一個無序不重複元素的集。

  • 建立集合

可以使用大括號{ }或者set()函式建立集合。注意:建立一個空集合是用set()建立,{}建立的是空字典。

# 建立集合
set_demo = {'語文', '數學', '英語', '生物'}
print(type(set_demo))
print("demo:", set_demo)

set_demo1 = set([1, 2, 3, 4, 4, 5, 5, 6, 7, 1])    # 列表
print(type(set_demo1))
print("demo1:", set_demo1)  # 重複的元素在set中會被自動過濾
set_demo2 = set(('java', 'python', 'c++')) # 元組 print(type(set_demo2)) print("demo2:", set_demo2) set_demo3 = set({'小紅': 23, '小米': 18, '小青': 19}) # 字典,字典轉set集合,需要注意的是,只取了字典的key,相當於將字典中的dict.keys()列表轉成set集合 print(type(set_demo3)) print("demo3:", set_demo3) set_demo4 = set() print(type(set_demo4)) #
set demo5 = {} print(type(demo5)) # dict
  • 集合新增

  1. 使用add()方法新增,把要傳入的元素作為一個整體新增到集合中。
  2. 使用update()方法新增,是把要傳入的元素拆分成單個字元,存於集合中,並去掉重複的字元。可以一次新增多個值。且引數可以是列表,元組,字典等。

    例項:

# 新增元素
set_demo = {'語文', '數學', '英語', '生物'}
print("demo:", set_demo)
set_demo.add("物理")
print("add新增元素後的demo:", set_demo)
set_demo.update(
'化學') # update直接新增元素會被拆分為單個字元 print("update新增元素後的demo:", set_demo) set_demo.update({'歷史'}) # 整個元素新增 print("update新增元素後的demo:", set_demo) set_demo1 = set([1, 2, 3, 4, 4, 5, 5, 6, 7, 1]) # 列表 print("demo1:", set_demo1) # 去重了 set_demo1.add(8) print("add新增元素後的demo1:", set_demo1) set_demo1.update([9, 10], [11, 12]) print("update新增元素後的demo1:", set_demo1) set_demo2 = set(('java', 'python', 'c++')) # 元組 print("demo2:", set_demo2) set_demo2.add("vue") print("add新增元素後的demo2:", set_demo2) set_demo2.update(('php', 'go', 'c')) print("update新增元素後的demo2:", set_demo2) set_demo3 = set({'小紅': 23, '小米': 18, '小青': 19}) # 字典 print("demo3:", set_demo3) set_demo3.add("花花") print("add新增元素後的demo3:", set_demo3) set_demo3.update({"小白": 20}) print("update新增元素後的demo3:", set_demo3)

    結果:

  • 集合刪除

  1. remove(element):刪除指定元素,如果元素不存在則會報錯。
  2. discard(element):刪除指定元素,如果元素不存在也不會報錯。
  3. pop():隨機刪除某個元素。
  4. clear():清空集合中的元素。

    例項:

# 刪除元素
set_demo6 = set(['高數', '線性代數', '概率論', '統計學', '計算機網路', '資料結構'])
print("原demo6:", set_demo6)
set_demo6.remove('高數')  # 如果元素不存在會報錯
print("remove刪除元素後的demo6:", set_demo6)
set_demo6.discard("計算機網路")  # 如果元素不存在也不會報錯
print("discard刪除元素後的demo6:", set_demo6)
set_demo6.pop() # 隨機刪除某個元素
print("pop刪除元素後的demo6:", set_demo6)
set_demo6.clear()   # 清空元素
print("clear元素後的demo6:", set_demo6)

    結果:

  • 集合操作運算(也可使用函式)

  1. 交集:集合的交集使用的符號是“&”,返回連個集合的共同元素的集合,即集合的交集。
  2. 並集:並集使用的符號是”|“,是兩個集合所有的並去掉重複的元素的集合。
  3. 差集:差集使用的符號是減號“-”,返回的結果是在集合st1中但不在集合st2中的元素的集合。

    例項:

set_demo7 = {'a', 'b', 'c', 'd', 'e', 'f', 'g'}
set_demo8 = {'a', 'c', 'e', 'g', 'h', 'z', 'w'}
print("demo7和demo8的交集:", set_demo7 | set_demo8)
print("demo7和demo8的並集:", set_demo7 & set_demo8)
print("demo7包含而demo8不包含的元素:", set_demo7 - set_demo8)
print("使用difference函式求的差集:", set_demo7.difference(set_demo8))
print("不同時包含於demo7和demo8的元素", set_demo7 ^ set_demo8)

    結果:

  • 函式