1. 程式人生 > >集合(set)

集合(set)

... amp orm set 多個 字典 fff code ....

定義:1.不同元素組成(指不可重復,可以用 此性質來去重,但是順序不可能恢復原樣)

    

s = set(li)

a = set([h,e,e])
print(a)


#輸出結果
{‘h‘, ‘e‘}

    2.集合是無序的

    3.存放的都是不可變元素 (也就是說列表,和字典不可以作為元素存放在集合裏)

   4.集合也可以定義不可變的(s = format((1,2,3,4,5)))

  在集合裏可以增加,刪除,不可以修改

定義方法

s = {1, 2, 3, 4}
a = set("hello")
print(a)
#輸出結果
(‘h‘,‘e‘,‘l‘,‘o‘)
  • 集合的方法

  1. 添加(add()方法一次只能添加一個值,用update()來可以一次添加多個,update()是重新更新集合的意思

  • add()
a = set([h,e,l])
a.add(b) 
a.add(3)

print(a)

#結果
{3, b, e, l, h}
  • update()
a = set([h,e,l])
a.update(sa,b)        #update會將後邊的以叠代的方式取出來添加到集合裏
print(a)
li = [1,2,3,4,5]
a.update(li)  #後邊可以是列表元組
print(a)
#結果 
{l, h, s, b, e, a}
{‘h‘, 1, 2, 3, 4, ‘a‘, 5, ‘l‘, ‘b‘, ‘s‘, ‘e‘}

  2.清空 clear()

a = {1,2,3,4,5,6}
a.clear()
print(a)

#結果
set()

  3.拷貝copy()

  4.刪除 pop(),remove(),discard()

    

a = {1,2,3,4,5,6}
b = a.pop()        #隨機從集合裏刪除一個值 但是可以得到刪除的值
a.remove(4)# 指定刪除某只但是如果刪除的值不存在會報錯
a.discard(5)#
如果刪除的不存在並不會報錯 print(a) #結果 {2, 3, 6}
  • 關系測試

  1.求兩個集合的交集

  

l1 = {1, 2, 3, 4, 5, 6}
l2 = {1, 2, 3, 7, 8, 9}

print(l1.intersection(l2)) #相當於l1 & l2


#結果
{1, 2, 3}

  2.並集

l1 = {1, 2, 3, 4, 5, 6}
l2 = {1, 2, 3, 7, 8, 9}

print(l1.union(l2)) #相當於l1 | l2

#結果
{1, 2, 3, 4, 5, 6, 7, 8, 9}

  3.差集

l1 = {1, 2, 3, 4, 5, 6}
l2 = {1, 2, 3, 7, 8, 9}

print(l1.difference(l2)) # 相當於 l1 - l2


#結果
{4, 5, 6}

  4.交叉補集

l1 = {1, 2, 3, 4, 5, 6}
l2 = {1, 2, 3, 7, 8, 9}

print(l1.symmetric_difference(l2)) #相當於 l1 ^ l2  並集減去兩個相交的


#結果
{4, 5, 6, 7, 8, 9}

  5....._uodate()這是指求完之後在再更新到前面的

l1 = {1, 2, 3, 4, 5, 6}
l2 = {1, 2, 3, 7, 8, 9}
l1.difference_update(l2)#相當於 l1 = l1 - l2
print(l1)


#結果
{4, 5, 6}
  • 集合也可以定義不可變的

 

集合(set)