集合

集合(set)的定义

1 不同元素组成

2 无序

3 集合中的元素必须是不可变的类型

集合的方法

 s = set('helllo')
print(s)

s = (['alex','alex','sb'])
print(s)

s = {1,2,3,4,5,'jack','sb','alex'}
s.add('s')#再集合中添加元素
print(s)

s.clear()#清空集合
print(s)
s1 = s.copy()#复制集合
print(s1)
s.pop()#集合是无需的,所以是任意删一个元素
print(s)

s.remove(('jack'))#指定删除某个元素,如果指定的元素不存在,会报错的
s.discard('alex')#删除指定的某元素,,如果不存在,不会报错-----------比较常用,因为即使删除的元素没有,整个程序也不会报错
print(s)


-------------------------------------------------------------------

#求python_1和li_2两个集合中相同的元素
python_1 = ['li','zheng','qq','zjw']
li_1 = ['wu','zjw','ac','kt','qq']

#用for循环的方法
p_and_l = []
for p_name in python_1:
if p_name in li_1:
p_and_l.append(p_name)
else:
pass
print(p_and_l)



#用集合中内置方法来解决
p1 = set(python_1)
l2 = set(li_1)
print(p1,l2)

#求交集
print(p1.intersection(l2))#求两个几个的交集
print(p1&l2)#也是求两个集合的交集
#求并集
print(p1.union(l2))#求并集
print(p1|l2)#也是求并集的
#求差集
print(p1.difference(l2))#内置的差集方法
print('chaji: ',p1 - l2)#直接用减号也可以
print('差集:',l2 - p1)


--------------------
#交叉补集
p1 = {'li','zheng','qq','zjw'}
l2 = {'wu','zjw','ac','kt','qq'}
print(p1.symmetric_difference(l2))
print(p1^(l2))

print(p1.issubset(l2))#p1是否是l2的子集,相当于<=
print(l2.issuperset(p1))#l2是否是p1的父集,相当于>=

s1 = {1,2}
s2 = {1,2,3}
s1.update(s2)#将s2的值添加到s1上,一个可以更新多个值
s1.add(9)#一次只能添加一个值
print(s1)




-------------------
 #建立一个不可变的集合
s = frozenset('hello')
print(s)


#集合除重,再输出集合
name = ['alex','wupeqi','alex']
name = list(set(name))
print(name)





原文地址:https://www.cnblogs.com/lhqlhq/p/8651610.html