day12 集合

# 由不同的元素组成的集合,集合中是一组无序排列的可hash值,可以作为字典的值
# 1.不同元素组成
# 2.无序
# 3.集合中元素必须不可变类型
# 4.集合可以用来去重,但是是无序的

# S = {'sb',1,2,3,4,5,565656,4,4,4}
# print(S)

#
# for i in S:
#     print(i)
#
#
# n = set('hello')
#
# print(n)


# 集合的方法
# 1.add添加方法
# S.add('3')
# print(S)


# 2.clear清空方法
# S.clear()
# print(S)


# 3.copy方发=法
# S.copy()
# print(S)

# 4.pop方法随机删除
# S.pop()
# print(S)

# 5.指定元素删除
# S.remove('sb')
# S.remove('helloooooo')  #删除不存在的元素会报错
# print(S)



# 6.discard删除,删除不存在的元素不会报错
# S.discard('sb')
# print(S)


# 集合的运算,关系运算
# python_l = ["lcg","szw","zjw","lcg"]
#
# linx_l = ["lcg","szw","alex","sb"]

# 需求,统计出既报了python课程,又报了linx课程的人,求共同的部分,也就是交集
# python_and_linx_l = []  #定义一个空列表
# for p_name in python_l:
#     if p_name in linx_l:
#         python_and_linx_l.append(p_name)
# print(python_and_linx_l)


# p_s = set(python_l)
# l_s = set(linx_l)
# print(p_s,l_s)

# 1. 求交集的方法intersection,还有一个符号也是可以求交集"&"
# print(p_s.intersection(l_s))
# print(p_s&l_s)


# 2.求并集,两个集合并到一块去,就是找不相同的,重复的会去掉
# print(p_s.union(l_s))
# print(p_s|l_s)


# 3.求差集,相减,存在于左边的,不存在于右边的,或者存在于右边的,不存在于右边的
# print("差集",p_s-l_s)
# print("差集",l_s - p_s)
# print("差集",p_s.difference(l_s))
# print("差集",l_s.difference(p_s))



# 4.交叉补集,把两个集合放在一起,找两个集合中都没有的
# print("交叉补集",p_s.symmetric_difference(l_s))
# print('交叉补集',p_s^l_s)


# 5.difference_update(l_s)做完差集直接更新
# python_l = ["lcg","szw","zjw","lcg"]
# linx_l = ["lcg","szw","alex","sb"]
# p_s = set(python_l)
# l_s = set(linx_l)
# print(p_s,l_s)

# p_s = p_s-l_s
# p_s.difference_update(l_s)
# print(p_s)


# 6.isdisjoint 如果两个集合中没有交集,就返回true
# s1 = {1,3}
# s = {4,5}
# print(s1.isdisjoint(s))


# 6.issubset判断两个集合是不是子集
# s2 = {2,3}
# s3 = {1,2,3}
# print(s2.issubset(s3))    # s2是s3的子集


# 7.判断两个集合哪个是父集
# print(s3.issuperset(s2))  # s3是s2的父集



# 8.update更新
# s2.update(s3)
# print("update",s2)




# 这个叫做不可变类型
s = frozenset('hello')
print(s)


names = ["alex",'alex','wupeiqi']
s = set(names)
print(s)

names = list(set(names))
print(names)

  

猜你喜欢

转载自www.cnblogs.com/styelfang/p/10180478.html