第九章:序列-集合

本文详细介绍了Python中的集合操作,包括潜复制、集合的创建与使用,如`add()`、`update()`、`pop()`、`remove()`等方法,以及集合的交集、并集、差集、异或集等运算。通过实例展示了如何从序列和字典转换为集合,并探讨了集合元素的无序性和唯一性特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

01.- 集合

(1).潜复制 copy()

潜复制就是只复制对象外层(只复制’a’:{}.‘b’:2,‘c’:3),不复制对象内层(不复制{‘name’:‘葫芦娃’,‘age’:20}
d = {‘a’:{‘name’:‘葫芦娃’,‘age’:20},‘b’:2,‘c’:3}
d2 = d.copy()
d2[‘a’][‘name’] = ‘黑猫警长’

print(‘d =’,d,id(d)) # d = {‘a’: {‘name’: ‘黑猫警长’, ‘age’: 20}, ‘b’: 2, ‘c’: 3} 2149788183792

print(‘d2 =’,d2,id(d2)) # d2 = {‘a’: {‘name’: ‘黑猫警长’, ‘age’: 20}, ‘b’: 2, ‘c’: 3} 2149788184152
以上两个前面一样,内存地址不一样

(2).集合的简介

不同点:
1.集合当中只能存储不可变对象
2.集合中存储的对象是无序的(不是按照元素的插入顺序进行保存的)
3.集合中不能出现重复元素

(3).创建集合

使用{}来创建集合
set是一组数,无序,内容又不能重复,通过调用set()方法创建

s = {10,2,3,4}
print(s,type(s)) # {3, 10, 2, 4} <class ‘set’>,所谓无序就是数据保存的顺序和我插入的顺序不一致

s = {10,2,3,4,1,2,3,1,1,2,10}
print(s,type(s)) # {1, 2, 3, 4, 10} <class ‘set’>

s = {[1,2,3],[4,5,6]}
print(s,type(s)) # TypeError: unhashable type: ‘list’ , 集合只能添加不可变对象,在这个例子中添加的list(列表)是个可变对象.

(4).set() 可以将序列和字典转换为集合

1.序列

s = set([1,2,3,4,5])
print(s,type(s)) # {1, 2, 3, 4, 5} <class ‘set’>
s = set([1,2,3,4,5,1,2,3,4,5])
print(s,type(s)) # {1, 2, 3, 4, 5} <class ‘set’>
s = set(‘python’)
print(s,type(s)) # {‘n’, ‘p’, ‘y’, ‘t’, ‘o’, ‘h’} <class ‘set’>
# {‘t’, ‘n’, ‘h’, ‘y’, ‘o’, ‘p’} <class ‘set’> 打印出来的结果具有无序性

2.字典, 使用set()将字典转换为集合时,只会包含字典中的键(key)

s = set({‘a’:1,‘b’:2,‘c’:3})
print(s,type(s)) # {‘a’, ‘c’, ‘b’} <class ‘set’>
# {‘b’, ‘a’, ‘c’} <class ‘set’> 打印出来的结果具有无序性

一,创建一个集合

s = {‘a’,‘b’,1,2,3}
0 1 2 3 4
print(s,type(s)) # {1, 2, 3, ‘a’, ‘b’} <class ‘set’>
print(list(s)[0]) # 1

二,集合的使用

(1),in 和 not in 是用来检查集合当中的元素

print(‘a’ in s) # True

(2).len() 来获取集合当中的元素数量(集合的长度)

print(len(s)) # 5

(3).add() 向集合当中添加元素

s.add(10)
s.add(30)
print(s) # {1, ‘b’, 3, 2, 10, ‘a’, 30}
{‘a’, 1, 2, 3, 10, ‘b’, 30}

(4).update() 是将一个集合当中的元素添加到;另一个集合当中

s2 = set(‘python’)
s.update(s2)
print(s) # {‘o’, 1, 2, 3, ‘a’, 10, ‘n’, ‘p’, ‘h’, ‘b’, ‘y’, 30, ‘t’}

(5).pop() 随机删除集合当中的一个元素

{‘o’, 1, 2, 3, ‘a’, 10, ‘n’, ‘p’, ‘h’, ‘b’, ‘y’, 30, ‘t’}
result = s.pop()
print(s) # {1, 2, 3, ‘p’, ‘y’, 10, ‘b’, ‘n’, ‘a’, ‘o’, ‘t’, 30}
print(result) # h 随机删除的一个元素是:h

(6).remove() 删除集合中指定的元素

s.remove(1)
print(s) # {‘o’, 2, 3, ‘n’, ‘h’, ‘a’, ‘b’, 10, ‘t’, ‘y’, ‘p’, 30}
删除的一个指定元素是:1

(7).clear() 清空集合

s.clear()
print(s) # set()

02. - 序列 - 集合运算

集合的运算

s1 = {1,2,3,4,5}
s2 = {3,4,5,6,7}

(1). & 交集运算

result = s1 & s2
print('result = ',result,s1,s2) # result = {3, 4, 5} {1, 2, 3, 4, 5} {3, 4, 5, 6, 7}

(2).并集运算

result = s1 | s2
print('result = ',result,s1,s2) # result = {1, 2, 3, 4, 5, 6, 7} {1, 2, 3, 4, 5} {3, 4, 5, 6, 7}

(3). - 差集

result = s1 - s2 # {1, 2}
print('result = ',result,s1,s2) # result = {1, 2} {1, 2, 3, 4, 5} {3, 4, 5, 6, 7}

(4). ^ 异或集 指的是集合里面不相交的部分

result = s1 ^ s2
print('result = ',result,s1,s2) # result = {1, 2, 6, 7} {1, 2, 3, 4, 5} {3, 4, 5, 6, 7}

(5). <= 检查一个集合是否是另一个集合的子集

a = {1,2,3}
b = {1,2,3,4,5,6}
result = a <= b # a集合是b集合的子集,b集合是a集合的超集
print('result = ',result,s1,s2) # result = True {1, 2, 3, 4, 5} {3, 4, 5, 6, 7}

result = {1,2,3} <= {1,2,3}
print('result = ',result,s1,s2) # result = True {1, 2, 3, 4, 5} {3, 4, 5, 6, 7}

(6). < 检查一个集合是否是另一个集合的真子集

result = {1,2,3} < {1,2,3}
print('result = ',result,s1,s2) # False {1, 2, 3, 4, 5} {3, 4, 5, 6, 7}

(7). >= 检查一个集合是否是另一个集合的超集

(8). > 检查一个集合是否是另一个集合的真超集

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值