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

目录

一、集合的性质

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

1、添加元素

2、删除元素

3、清空可变集合元素

三、集合类型的操作符

 1、联合操作符(|)

2、交集操作符(&)

3、差补操作符(-)

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

多学一招

四、例题解析


一、集合的性质

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)

Python的集合、总结例题篇(下)_第1张图片

(5)代码例子2

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

Python的集合、总结例题篇(下)_第2张图片

2、删除元素

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

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

Python的集合、总结例题篇(下)_第3张图片

(2)discard()方法:可以删除指定的元素,但若指定的元素不存在,该方法不执行任何操作

discard_set = {'python', 'php', 'java'}
discard_set.discard('java')
discard_set.discard('ios')
print(discard_set)

Python的集合、总结例题篇(下)_第4张图片

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

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

Python的集合、总结例题篇(下)_第5张图片

(4)代码例子

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

Python的集合、总结例题篇(下)_第6张图片

3、清空可变集合元素

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

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

Python的集合、总结例题篇(下)_第7张图片

三、集合类型的操作符

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

Python的集合、总结例题篇(下)_第8张图片

 1、联合操作符(|)

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

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

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

Python的集合、总结例题篇(下)_第9张图片

2、交集操作符(&)

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

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

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

Python的集合、总结例题篇(下)_第10张图片

3、差补操作符(-)

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

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

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

Python的集合、总结例题篇(下)_第11张图片

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

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

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

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

Python的集合、总结例题篇(下)_第12张图片


多学一招

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

Python的集合、总结例题篇(下)_第13张图片


四、例题解析

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

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

Python的集合、总结例题篇(下)_第14张图片

 2、输入一个包含若干整数的列表,输出其中的最大值,以及所有最大值的下标组成的列表,使用列表推导式

data = eval(input('请输入一个包含若干整数的列表:'))
m = max(data)
print(m)
print([index for index, value in enumerate(data) if value==m])

Python的集合、总结例题篇(下)_第15张图片

 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的集合、总结例题篇(下)_第16张图片

你可能感兴趣的:(Python,python,jupyter)