Python set 方法

集合(set)

1.set是一個無序不重複的序列函數

2.能夠用 { } 或者 set( ) 函數建立集合spa

3.集合存放不可變類型(字符串、數字、元組)code

  注意:建立一個空集合必須用 set( ) 而不是 { } ,由於 { } 是用來建立一個空字典 blog

 

4.  set.add(x)

# add(x)將元素x添加到集合裏
s = {1,2,3,4,5,}
s.add('5')
print(s)
{1, 2, 3, 4, 5, '5'}

 

 

5.  set.update(x)   可更新多個值

# update(x),將x添加到集合中,且參數能夠是列表、元組、字典等
s = set(('a', 'cc', 'f'))
# 添加字典只能添加不可變的--鍵
dict_1 = {'name': 'bb', 'age': 'cc', 'f': 11}
s.update(dict_1)
print("添加字典"+str(s))
添加字典{'name', 'a', 'age', 'f', 'cc'}

 

s = set(('a', 'cc', 'f'))
tup_1 = (1, 2,)
s.update(tup_1)
print(s)
{1, 2, 'a', 'f', 'cc'}

 

s = set(('a', 'cc', 'f'))
list_1 = ['w', 'a', 1]
s.update(list_1)
print(s)
{1, 'f', 'w', 'a', 'cc'}

 

 

6.  set.remove(x)

# 移除集合中元素,若是移除的元素不在集合中將發生錯誤
s = set(('a', 'cc', 'f'))
s.remove('cc')
print(s)
{'a', 'f'}

 

s = set(('a', 'cc', 'f'))
s.remove('mm')
print(s)
Traceback (most recent call last):
  File "C:/Users/123/PycharmProjects/py2018/test", line 104, in <module>
    s.remove('mm')
KeyError: 'mm'

 

 

7.  set.discard(x)

# 移除集合中元素,若是移除的元素不在集合中不會發生錯誤
s = set(('a', 'cc', 'f'))
s.discard('mm')
print(s)
{'cc', 'a', 'f'}

 

 

8.  set.pop()

# 隨機刪除集合中元素
s = set(('a', 'cc', 'f'))
s.pop()
print(s)
{'a', 'cc'}

 

 

9.  set.clear()

# 清空集合
s = set(('a', 'cc', 'f'))
s.clear()
print(s)
set()

 

 

10.  計算set元素個數

s = set(('a', 'cc', 'f'))
print('集合元素個數爲:'+str(len(s)))
集合長度爲:3

 

 

11.  set.copy

s = set(('a', 'cc', 'f'))
s1 = s.copy()
print(s1)
{'a', 'f', 'cc'}

 

 

12.  差集(-)  (difference)

# difference求差集 或者用 -
s = set(('a', 'cc', 'f'))
s1 = {'a', 'f', 1, 'ww'}
# 兩種求差集的方法
print("在s中不在s1中: "+str(s.difference(s1)))
print('在s1中不在s中: '+str(s1-s))
在s中不在s1中: {'cc'}
在s1中不在s中: {'ww', 1}

 

 

13.  交集(&)  (intersection)

s = set(('a', 'cc', 'f'))
s1 = {'a', 'f', 1, 'ww'}
# 同時在集合s 和 s1 中的元素
print(s.intersection(s1))
print(s1&s)
{'a', 'f'}
{'a', 'f'}

 

 

14.  並集(|)  (union)

s = set(('a', 'cc', 'f'))
s1 = {'a', 'f', 1, 'ww'}
# 元素在集合 s 中或在集合 s1 中
print(s.union(s1))
print(s1|s)
{'a', 1, 'f', 'cc', 'ww'}
{'a', 1, 'f', 'cc', 'ww'}

 

 

15.  對稱差集(^)  (sysmmetric_difference)

s = set(('a', 'cc', 'f'))
s1 = {'a', 'f', 1, 'ww'}
# 除集合s和集合s1共有的之外的元素
print(s.symmetric_difference(s1))
print(s1^s)
{1, 'ww', 'cc'}
{1, 'ww', 'cc'}

 

 

16.  set.issubset(x)  判斷一個集合是不是另外一個集合的子集

s = set(('a', 'cc', 'f'))
s1 = {'a', 'f'}
print(s.issubset(s1))
print(s1.issubset(s))
False
True

 

 

17.  set.isuperset(x)  判斷一個集合是不是另外一個集合的父集

s = set(('a', 'cc', 'f'))
s1 = {'a', 'f'}
print(s.issuperset(s1))
print(s1.issuperset(s))
# s1是s的子集,s是s1的父集
print(s1.issubset(s))
True
False
True

 

 

18.  symmetric_difference_update() 對稱更新差集

#將s2更新到s1中的同時去除s2 和s1中相同的元素
s1 = {'ljl','wc','xy','zb','lsy'}
s2 = {'mmf','lsy','syj'}
s1.symmetric_difference_update(s2)
print(s1)
{'syj', 'xy', 'wc', 'ljl', 'zb', 'mmf'}

 

 

19.  isdisjoint() 檢測2個集合是否不存在交集 存在交集 False

s1 = {'ljl','wc','xy','zb','lsy'}
s2 = {'mmf','lsy','syj'}
s3 = {1, 2}
print(s1.isdisjoint(s2))
print(s1.isdisjoint(s3))
False
True

 

 

20.  intersection_update 交集更新操做

s1 = {'ljl','wc','xy','zb','lsy'}
s2 = {'mmf','lsy','syj'}
s1.intersection_update(s2)
s2.intersection_update(s1)
print(s1)
print(s2)
{'lsy'}
{'lsy'}

 

 

21.  定義不可變集合    例:     s = frozenset('a', 'b')

相關文章
相關標籤/搜索