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 陕西

相关推荐

10-09 09:39
门头沟学院 C++
HHHHaos:这也太虚了,工资就一半是真的
点赞 评论 收藏
分享
拒绝无效加班的小师弟很中意你:求职意向没有,年龄、课程冗余信息可以删掉,需要提升项目经历。排版需要修改。
点赞 评论 收藏
分享
评论
1
2
分享
牛客网
牛客企业服务