# !/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hugolinhj
list_1 = [1,4,5,7,6,3,7,9]
list_1 = set(list_1)
print(list_1,type(list_1))
#list_1转换为集合基本数据类型,集合的特性 ,特性:清除反复 。集合也是混乱的。
list_2 = set([2,6,3,4,33,41,8])
print(list_1,list_2)
##############################例#################################
list_3 = list_1.intersection(list_2)
print(list_3)
#2个集合的交集
list_3 = list_1.union(list_2)
print(list_3)
#2个集合的或且
list_3 = list_1.difference(list_2)
print(list_3)
#差集,list1里面有,但list2沒有
list_3 = list_1.issubset(list_2)
print(list_3)
#判断list1是不是为list2得非空子集
list_3 = list_1.issuperset(list_2)
print(list_3)
#判断list1是不是为list2得父集
list_3 = list_1.symmetric_difference(list_2)
print(list_3)
#判断list1 、list2中 ,相互之间沒有的取下来。对称性差集
list_3 = set([1,3,4])
list_4 = set([5,6,8])
list_5 = list_3.isdisjoint(list_4)
print(list_5)
#判断list3、list4中,沒有出現交集,则True 。
print(list_1)
list_3 = list_1.pop()
print('1>>',list_3)
list_3 = list_1.pop()
print('2>>',list_3)
list_3 = list_1.pop()
print('3>>',list_3)
list_3 = list_1.pop()
print('4>>',list_3)
list_3 = list_1.pop()
print('5>>',list_3)
print('6>>',list_1)
#任意删掉一个值,并意见反馈删掉的值
list_2 = set([2,6,3,4,33,41,8])
print('==>',list_2.discard('11'))
print('==>>',list_2.discard(2))
print('==>>>',list_2)
#删掉特定一个值,不意见反馈删掉值,即便 删掉不正确都不意见反馈。
list_1.add(999)
print(list_1)
#加上一项
list_1.update([2,999,333])
print(list_1)
#加上多种
#选用标记的常见实际操作:
s = set ([3,5,9,10])
#建立一个标值集合
t = set (['hello'])
#建立一个唯一标识符的集合
r = set ([3,'hesl'])
print(s)
print(t)
print(r)
a = t | s | r
#t和s的或且
b = t & s
#t和s的交集
c = t - s
#求差集(项在t中 ,没有s中)
d = t ^ s
#求对称性差集(项在t或是s中,但不容易朋友出現在二者中)
print('1.',a)
print('2.',b)
print('3.',c)
print('4.',d)
s = set([3,3,5,4])
s.remove(4)
print(s)
#删掉
y=len(s)
print(y)
#s的长短
s = set ([3,5,9,10])
t = set (['hello'])
ss = 3 in s
print(ss)
#判断3是不是在s集合中
tt = 'hel' in t
print(tt)
#字符串数组没法切成片去判断
ss = 3 not in s
print(ss)
#判断3是不是没有s集合中
r = set([1,3,4,5,6,78,9,10])
rr = s <= r
print(rr)
#判断s是不是为r的非空子集
rr = s >= r
print(rr)
#判断s是不是为r的父集
p = ([1,1,3,[3,4,5,5],1])
pp = p.copy()
print(pp)
#回到p的浅拷贝