python-集合-函数

集合 set

集合是可变容器

集合内的数据对象是唯一的(不能重复多次的)

集合是无序的存储结构,集合中的顺序没有先后关系

集合的元素必须是不可变对象、

集合是可迭代的

集合是相当于只有键没有值的字典(键则是集合的数据)

创建空的集合、

s= set()

创建非空集合

set={1,2,3} 集合中的三个整数1,2,3

集合的构造函数 set

set 创建空集合

set(iterable)用可迭代对象创建一个新的集合对象

示例:

s=set(“ABC”)

s=set(“ASFSSDFDG”) #会去掉重复的

s=({“1”:“dsf”,“2”:“ssf”})

s=set([1,2,2.13,False])

s=set((1,2,3))

s=set([1,2,[3.1,3.2],4]) 错的,嵌套的列表是可变列表

集合的运算

-------------不支持改,只能先删除,再添加

交集 并集 补集 子集 超集

& 生成两个集合的交集

s1={1,2,3}

s2={2,3,4}

s3=s1&s2

| 生成两个集合的并集

s1={1,2,3}

s2={2,3,4}

s3=s1 | s2 s3={1,2,3,4}

-生成两个集合的补集

s1={1,2,3}

s2={2,3,4}

s3=s1 - s2 生成属于s1,但不属于s2的所有元素的组合

^生成两个集合的对称补集

s1={1,2,3}

s2={2,3,4}

s3=s1^s2 s3={1,4} 等同于 (S1-S2) | (S2-S1)

< 判断一个集合是否是另一个集合的子集

,>判断一个集合是否是另一个集合的超集

s1={1,2,3}

s2={1,2}

s2<s1 True 判断子集

s1>s2 True 判断 超集

== != 判断集合相同或者不同

s1={1,2,3}

s2={2,3,1}

s1==s2 True 集合的数据没有先后顺序关系 元素个数相同 元素值相同

s1!=s2 False

in / not in 运算符

等同于字典,in 运算符 用于集合中,当某个值存在于集合中,则为真,否则为假

not in 与 in 返回值相反、

示例:

s={1,“Two”,3.14}

1 in s True

2 in s False

3.14 not in s False

4 not in s True

python3 当中 可以用于集合的函数

len(x) max(x) min(x) sum(x) any(x) all(x)

练习

经理: 曹操 刘备 周瑜

技术员 :曹操 周瑜 张飞 赵云

用集合求:

1,是经理也是技术的集合

2,是经理但不是技术员的集合

3,是技术员,但不是经理的集合

4张飞是经理吗

5,身兼两职的的集合

6,经理和技术员共有几人

思考:

集合是可变对象,有方法能添加,删除集合的数据吗

集合的方法

s=set()

S.add(e) 在集合中添加一个新的元素e;如果元素已经存在,则不添加
S.remove(e) 从集合中删除一个元素,如果元素不存在于集合中,则会产生一个KeyError错误
S.discard(e) 从集合S中移除一个元素e;
S.clear() 清空集合内的所有元素
S.copy() 将集合进行一次浅拷贝
S.pop() 从集合S中删除一个随机元素;如果此集合为空,则引发KeyError异常
S.update(s2) 用 S与s2得到的全集更新变量S
S.difference(s2) 用S - s2 运算,返回存在于在S中,但不在s2中的所有元素的集合
S.difference_update(s2) 等同于 S = S ^ s2
S.intersection(s2) 等同于S & s2
S.intersection_update(s2) 等同于S = S & s2
S.isdisjoint(s2) 如果S与s2交集为空返回True,非空则返回False
S.issubset(s2) 如果S与s2交集为非空返回True,空则返回False
S.issuperset(…) 如果S为s2的子集返回True,否则返回False
S.symmetric_difference(s2) 返回对称补集,等同于 S ^ s2
S.symmetric_difference_update(s2) 用S 与 s2的对称补集更新 S
S.union(s2) 生成 S 与 s2的全集

s1={1,2,3}

s2={2,3,4}

s=s1

s1|=s2 对于可变对象,不等同于s1+=s2

print(s) {1,2,3}

s1=s1|s2

print(s) {1,2,3,4}

对于不可变对象,复合赋值运算符不等同于 运算后再赋值

s1 |= s2 不等于

s1=s1 | s2

练习:

任意输入一个单词,存入集合中,当输入空字符串时结束输入

1)打印输入的单词种类数(去重)

2)每个单词都打印到终端上显示

l=<
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值