#! /usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = '以德服人'
# set 無序,不重復序列
# 創建
# 第一種
set1 = {"1", "2"}
# {'1', '2'}
print(type(set1))
# 第二種
list1 = ["1", "2", "2", "1"]
set2 = set(list1)
print(set2)
# {'1', '2'}
# <class 'set'>
# 功能
# 添加一個元素
s = set()
s.add(123)
s.add(123)
print(s)
# {123}
# 清除素有內容
s.clear()
print(s)
# set()
# 兩個集合的差集
s1 = {32, 12, 34}
s2 = {12, 43, 23}
# s1中存在,s2中不存在
print(s1.difference(s2))
# {32, 34}
# 對稱差集
print(s1.symmetric_difference(s2))
# {32, 34, 43, 23}
# difference和symmetric_different會生成新一個結果,而different_update 和 symmetic_different_update會覆蓋之前集合
# 移除元素 如果元素不存在,不會報錯 remove 如果元素不存在,會報錯
s1.discard(32)
print(s1)
# {34, 12}
# 集合pop隨機移除某個元素並且獲取那個參數,集合pop沒有參數
re2 = s2.pop()
print(re2)
# 43
s3 = {11, 22, 33}
s4 = {44, 33, 22}
# 交集
print(s3.intersection(s4))
# {33, 22}
# 判斷兩個集合有沒有交集,有返回true 無返回false
print(s3)
print(s4)
print(s3.isdisjoint(s4))
# False 怎么是false 這不是有交集嗎
# 並集
print(s3.union(s4))
# {33, 22, 11, 44}
# update 批量更新
li = [21, 4, 2, 312]
s3.update(li)
print(s3)
# {33, 2, 4, 11, 21, 22, 312}