Python的集合、总结例题篇(下)

一、集合的性质

1、无序、可变的容器对象,所有元素放在一对大括号中,元素之间使用逗号分隔,同一个集合内的每个元素都是唯一的,不允许重复

2、只能包含数字、字符串、元组等不可变类型的数据,不能包含列表、字典、集合等可变类型的数据,包含列表等可变类型数据的元组也不能作为集合的元素

3、其中元素是无序的,元素存储顺序和添加顺序并不一致,集合不支持使用下标直接访问特定位置上的元素,也不支持使用rendom中的choice()函数从集合中随机选取元素,但支持使用random模块中的sample()函数随机选取部分元素

二、集合常用的方法(元素的添加、删除和清空)

1、添加元素

(1)可变集合的add() 或update()方法都可以实现向集合中添加元素

(2)add()方法:用来增加新元素,如果元素已存在则忽略该操作,不会抛出异常,且只能添加一个元素

(3)update()方法:用于合并另外一个集合中的元素到当前集合中,并自动去除重复元素,且可以添加多个元素

(4)代码例子1

demo_set = set() 
demo_set.add('py')         
demo_set.update("thon")
print(demo_set)

(5)代码例子2
data = {30,40,50}
data.add(20)  #增加新元素20
data.add(50)  #集合中已包含50,忽略本次操作
data.update({40,60})  #忽略40,增加新元素60
print(data)

2、删除元素

(1)remove()方法:用于删除可变集合中的指定元素,如果指定元素不存在则抛出异常

remove_set = {'red', 'green', 'black'}
remove_set.remove('red')
print(remove_set)

(2)discard()方法:可以删除指定的元素,但若指定的元素不存在,该方法不执行任何操作
discard_set = {'python', 'php', 'java'}
discard_set.discard('java')
discard_set.discard('ios')
print(discard_set)

(3)pop()方法:用于删除并返回可变集合中的随机一个元素,如果集合为空则抛出异常

pop_set = {'green', 'blue', 'white'}
pop_set.pop()            # 随机删除
print(pop_set)


(4)代码例子
data = {30,40,50}
data.remove(30)  #删除元素30
data.discard(30)  #集合中没有30,忽略本次操作
print(data.pop())  #删除并返回集合中的一个元素
print(data)


3、清空可变集合元素

clear()方法:可以清空可变集合中的元素

clear_set = {'red', 'green', 'black'}
clear_set.clear()
print(clear_set)

三、集合类型的操作符

Python支持通过操作符|、&、-、^对集合进行联合、取交集、差补和对称差分操作


 1、联合操作符(|)

(1)联合操作是将集合set_a与集合set_b合并成一个新的集合

(2)联合使用“|”符号实现

set_a={'a', 'c'}
set_b={'b', 'c'}
print(set_a | set_b)

2、交集操作符(&)

(1)交集操作是将集合set_a与集合set_b中相同的元素提取为一个新集合

(2)交集使用“&”符号实现

set_a={'a', 'c'}
set_b={'b', 'c'}
print(set_a & set_b)

3、差补操作符(-)

(1)差补操作是将只属于集合set_a或者只属于集合set_b中的元素作为一个新的集合

(2)差补使用“-”符号实现

set_a={'a', 'c'}
set_b={'b', 'c'}
print(set_a - set_b) 

4、对称差分操作符(^)

(1)对称差分操作是将只属于集合set_a与只属于集合set_b中的元素组成一个新集合

(2)对称差分使用“^”符号实现

set_a={'a', 'c'}
set_b={'b', 'c'}
print(set_a ^ set_b)

多学一招

列表、元组、字典和集合都是Python中的组合数据类型,它们都拥有不同的特点,如下图所示

四、例题解析

1、输入两个包含若干整数的等长列表表示两个向量,输出这两个向量的内积,使用列表推导式

vector1 = eval(input('请输入一个包含若干整数的向量:'))
vector2 = eval(input('请再输入一个包含若干整数的等长向量:'))
print(sum([num1*num2 for num1, num2 in zip(vector1, vector2)]))

 2、输入一个包含若干整数的列表,输出其中的最大值,以及所有最大值的下标组成的列表,使用列表推导式
data = eval(input('请输入一个包含若干整数的列表:'))
m = max(data)
print(m)
print([index for index, value in enumerate(data) if value==m])

 3、输入两个集合A和B,输出它们的并集、交集、对称差集以及差集A-B和B-A,使用集合运算符
A = eval(input('请输入一个集合:'))
B = eval(input('再输入一个集合:'))
print('并集:', A|B)
print('交集:', A&B)
print('对称差集:', A^B)
print('差集A-B:', A-B)
print('差集B-A:', B-A)

Python 文章被收录于专栏

Python概述及应用领域,PyCharm、Jupyter notebook的安装与使用,编码规范,标准库、扩展库对象的导入与使用

全部评论
楼主厉害啊
点赞 回复 分享
发布于 2022-09-27 15:45 陕西

相关推荐

机智的豹子有点心碎:UU我还在找工作还没找到,一直在搜简历怎么改,总结了这些: 1.SEO:简历根据每一个岗位定制化:使用这个岗位中所描述的工作的词,它要求什么技能就把自己的技能描述成什么样子,把SEO用在自己身上(把我的简历和个人特质,当成一个热门产品来做 “搜索引擎优化”),让HR能用最低的门槛看到我 2."顺序:把岗位要求的技能跟经历放在简历的最开头、最显眼的位置" 3.包装:简历是一个最终交付说明书,只要最终学习成长做得到就可以,在合适的范围内自我吹捧(我这个人怎么能够在HR的角度被迅速的看懂和看到,减轻HR的工作压力) 4.每点加小标题​:用6~10字概括该段内容,便于面试官快速抓取信息。 5.避免空泛描述​:拒绝“培养了组织能力”等泛泛而谈,替换为具体行动和成果。 6."使用“三段式结构”​​:每段经历按“为什么做-做了什么-结果如何”展开: ​a) 为什么做​:痛点或目标(例如“品牌声量不足”) ​b) 做​了什么:方法论(例如“趋势洞察+竞品对标+人群细分”) ​c) 结果如何​:量化成果或影响(例如“推动客户投放20万预算”)" 7.量化成果​:用数字体现工作成效(如“整理500+份资料”“撰写2万字报告”)。 这些有的是我想去的岗的,如果对你有用的话按需修改就好~加油,早日上岸!
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务