集合
集合的描述
set是一個無序不重復的序列,可以用{}或者 set() 函式創建集合,它存放不可變型別(如字串、數字、元組)資料,
注意:創建一個空集合必須使用set()方法,因為{}是用來生成一個空字典的,
集合的方法
- add()
將元素添加到集合中,
s1 = {1,2,3,4,5}
s1.add('new_number')
print(s1)
{1, 2, 3, 4, 5, 'new_number'}
- update()
可一次更新多個值,
# update(x),將x添加到集合中,且引數可以是串列、元組、字典等
s2 = set(('aaa', 'ccc', 'fff'))
# 添加字典只能添加不可變的--鍵
dict_1 = {'name': 'bb', 'age': 'cc', 'aaa': 11}
s2.update(dict_1)
print("新集合", s2)
新集合 {'name', 'aaa', 'fff', 'ccc', 'age'}
- remove()
移除集合中的某個元素,
s3 = set(('aaa', 'ccc', 'fff'))
s3.remove('ccc')
print(s3)
{'aaa', 'fff'}
此外還有一個discard()函式也能移除集合中的元素,與remove()不同的是,移除的元素是字典中沒有的元素時discard()不會報錯,
- pop()
隨機洗掉集合中的一個元素,
s4 = set(('aaa', 'ccc', 'fff'))
s4.pop()
print(s4)
{'aaa', 'ccc'}
- clear()
清空集合
-
計算集合元素個數,
s5 = set(('aaa', 'ccc', 'fff')) print('集合元素個數為:'+str(len(s5)))
-
copy()
復制一個新的集合,
s6 = s5.copy()
print(s6)
{'aaa', 'ccc', 'fff'}
- difference()
求差集,也可以用-,
s = set(('a', 'cc', 'f')) s1 = {'a', 'f', 1, 'ww'} # 兩種求差集的方法 print("在s中不在s1中: ", s.difference(s1)) print("在s1中不在s中: ", s1-s)
在s中不在s1中: {'cc'}
在s1中不在s中: {'ww', 1}
- intersection()
求交集,也可以用&
s = set(('a', 'cc', 'f'))
s1 = {'a', 'f', 1, 'ww'}
# 同時在集合s 和 s1 中的元素
print(s.intersection(s1))
print(s1&s)
- union()
求并集,也可以用|,
s = set(('a', 'cc', 'f'))
s1 = {'a', 'f', 1, 'ww'}
# 元素在集合 s 中或在集合 s1 中
print(s.union(s1))
print(s1|s)
- sysmmetric_difference()
求對稱差集,也可以用^,
s = set(('a', 'cc', 'f'))
s1 = {'a', 'f', 1, 'ww'}
# 除集合s和集合s1共有的以外的元素
print(s.symmetric_difference(s1))
print(s1^s)
- issubset()
判斷一個集合是否是另一個集合的子集.
s = set(('a', 'cc', 'f'))
s1 = {'a', 'f'}
print(s.issubset(s1))
print(s1.issubset(s))
- isuperset()
判斷一個集合是否是另一個集合的父集.
s = set(('a', 'cc', 'f'))
s1 = {'a', 'f'}
print(s.issuperset(s1))
print(s1.issuperset(s))
# s1是s的子集,s是s1的父集
print(s1.issubset(s))
- isdisjoint()
檢測2個集合是否不存在交集,如果存在交集,則回傳False
s1 = {'ljl','wc','xy','zb','lsy'}
s2 = {'mmf','lsy','syj'}
s3 = {1, 2}
print(s1.isdisjoint(s2))
print(s1.isdisjoint(s3))
- frozenset()
定義不可變集合
s = frozenset('a', 'b')
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/170797.html
標籤:Python
下一篇:資料結構系統學習(2)演算法
