Python的集合、总结例题篇(下)
一、集合的性质
1、无序、可变的容器对象,所有元素放在一对大括号中,元素之间使用逗号分隔,同一个集合内的每个元素都是唯一的,不允许重复
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)
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概述及应用领域,PyCharm、Jupyter notebook的安装与使用,编码规范,标准库、扩展库对象的导入与使用