集合

一、集合

    1、集合是由不同元素组成

    2、集合是无序的

    3、集合中元素必须是不可变类型(字符串、数字、元组)

二、集合的定义

    1、s = {1,2,3,4,5}

    2、s = set(hello) 通过迭代的方式生产集合

s = "hello"
ret = set(s)
print(ret)


{'l', 'e', 'h', 'o'}

三、集合的方法

    1、添加  add  如果添加有重复不会报错,但是不会添加。 

ret = {1,2,3}
ret.add(4)
print(ret)

{1, 2, 3, 4}

    2、clear 清除  (清空集合)

    3、copy 拷贝

s = {1,2,3}
s1 = s.copy()
print(s1)

{1,2,3}

    4、pop删除,集合是无序的,所以是随机删除

    5、remove指定删除,如果指定删除没有则会报不存在KeyError

s = {1,2,3,4}
s.remove(2)
print(s)

{1,3,4}

    6、discard和remove功能一样,不同之处是假如没有找到关键字不会报错

四、集合的运算

    1、并集

    假设有两个列表,一个列表列出学习python的学生,一个列表列出学习linux的学生,请列出既学习linux又学习了python的学生。

python1 = ["zhangsan","lisi","wangwu"]
linux1 = ["zhangsan","lisi"]
p_s = set(python1)
l_x = set(linux1)
print(p_s.intersection(l_x))
print(p_s&l_x)

{'zhangsan', 'lisi'}
{'zhangsan', 'lisi'}

    2、合集

        使用union或者符合 |

python1 = ["zhangsan","lisi","wangwu"]
linux1 = ["zhangsan","lisi"]
p_s = set(python1)
l_x = set(linux1)
print(p_s|l_x)
print(p_s.union(l_x))

{'lisi', 'zhangsan', 'wangwu'}
{'lisi', 'zhangsan', 'wangwu'}

    3、差集

        差集 difference 或者 -

python1 = ["zhangsan","lisi","wangwu"]
linux1 = ["zhangsan","lisi"]
p_s = set(python1)
l_x = set(linux1)
print(p_s.difference(l_x))
print(p_s-l_x)


{'wangwu'}
{'wangwu'}

    4、交叉补集 使用symmetric_differcence或者符号^。先合集再减去并集得出的就是交叉补集。

python1 = ["zhangsan","lisi","wangwu"]
linux1 = ["zhangsan","zhaoliu"]
p_s = set(python1)
l_x = set(linux1)
print(p_s^l_x)
print(p_s.symmetric_difference(l_x))

{'lisi', 'wangwu', 'zhaoliu'}
{'lisi', 'wangwu', 'zhaoliu'}

   5、difference_update求完差集并更新原集合,返回值为None,相当于p_s = p_s - l_s

python1 = ["zhangsan","lisi","wangwu"]
linux1 = ["zhangsan","zhaoliu"]
p_s = set(python1)
l_x = set(linux1)
v = p_s.symmetric_difference_update(l_x)
print(p_s,v)

{'zhaoliu', 'lisi', 'wangwu'} None

    6、isdisjoint 两个集合没有交集返回True,有交集返回False

s1 = {1,2}
s2 = {3,4}
print(s1.isdisjoint(s2))

True

    7、issubset 一个集合是否是另外一个集合旳子集,如果是 返回True 如果不是返回False

s1 = {1,2,3,4}
s2 = {1,3}
print(s2.issubset(s1))

True

    8、issuperset 判断一个集合是否是另一个集合的父集

    9、update并集并且更新,union不会更新

s1 = {1,2,3}
s2 = {2,3,4}
s1.update(s2)
print(s1)

{1,2,3,4}

五、集合的补充

    1、frozenset 定义不可变集合

s = frozenset('hello')
print(s)
 
frozenset({'e', 'h', 'l', 'o'})

    2、列表使用集合的方法去重,但是生成的列表顺序可能和原序列不同

names = ['zhangsan','zhangsan','lisi']
names = list(set(names))
print(names)
 
['lisi', 'zhangsan']

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值