Python集合set

Python集合set

两种集合的定义方法

定义集合的方法一:直接定义法

a = {1,2,3}
print(type(a))
<class 'set'>

特别注意空集合的定义法不同于列表、元组,因为Python默认{}\{\}{}为字典,所以空集合的定义使用强转的方式。

a = {}
print(type(a))
<class 'dict'>  #字典类型

定义集合的方法二:使用强转的方式定义

a = set({})
print(type(a))

集合的性质

集合具有元素不重复性、唯一性、无序性,所以集合不能够通过索引取值,经常使用强转集合的方式去重。

a = {1,1,1,1,2}
print(a)
{1, 2}

集合运算

集合属于可变类型,只能随机取值,若要精确取值则要转换为列表,属于散列类型。

& 交集 a&b
| 并集 a|b

- 补集 a-b b在a中的补集

交集运算

a = {1,2,3,4,5}
b = {2,3,4,5,6,7,8}
print(a & b)
{2, 3, 4, 5}

并集运算

a = {1,2,3,4,5}
b = {2,3,4,5,6,7,8}
print(a | b)
{1, 2, 3, 4, 5, 6, 7, 8}

补集运算

a = {1,2,3,4,5}
b = {2,3,4,5,6,7,8}
print(a - b)
{1}

集合的方法

add方法

#在原集合末尾添加元素
a = {1,2,3,4,5}
a.add(6)
print(a)
{1, 2, 3, 4, 5, 6}

update方法

#可以添加列表字符串和集合,若为字符串,则字符串拆为字符,单个添加
#使用update时候,必须是可迭代对象
a = {1,2,3,4,5}
a.update([7,8])
print(a)
a.update('12343')
print(a)
{1, 2, 3, 4, 5, 7, 8}
{1, 2, 3, 4, 5, 7, 8, '3', '4', '1', '2'}

pop方法

#随机删除,拿出来再删除,哈希算法,若为数字集合则从第一个元素删除
a = {1,2,3,4,5}
print(a.pop())
print(a.pop())
print(a.pop())
print(a.pop())
1
2
3
4
a = {'3', '4', '1', '2'}
print(a.pop())
print(a.pop())
print(a.pop())
print(a.pop())
4
1
2
3

remove方法

#删除某一个元素
a = {1,2,3,4,5}
a.remove(3)
print(a)
{1, 2, 4, 5}

isdisjoint方法

#判断是否有交集     a.isdisjoint(c)   a里面有没有c吗?
a = {1,2,3,4,5}
b = {6}
c = {6,3,7}
print(a.isdisjoint(b))
print(a.isdisjoint(c))
True
False

issubset方法

#判断是否是子集     a.issubset(c)    a是c的子集吗
a = {6}
b = {1,2,3,4,5}
c = {6,3,7}
print(a.issubset(b))
print(a.issubset(c))
False
True
a = {1,2,3,4,5}
b = {6}
c = {1,2,3}
print(a.issuperset(b))
print(a.issuperset(c))
False
True
以下是Python集合set的一些练习题: 1. 创建一个新的空集 ```python set1 = set() ``` 2. 迭代集合 ```python set2 = {"apple", "banana", "cherry"} for x in set2: print(x) ``` 3. 在集合中添加成员 ```python set3 = {"apple", "banana", "cherry"} set3.add("orange") print(set3) ``` 4. 从Python集合中删除成员 ```python set4 = {"apple", "banana", "cherry"} set4.remove("banana") print(set4) ``` 5. 存在则从该集合中删除该成员 ```python set5 = {"apple", "banana", "cherry"} set5.discard("banana") print(set5) ``` 6. 集合的交集 ```python set6a = {1, 2, 3} set6b = {2, 3, 4} set6c = set6a.intersection(set6b) print(set6c) ``` 7. 集合的并集 ```python set7a = {1, 2, 3} set7b = {2, 3, 4} set7c = set7a.union(set7b) print(set7c) ``` 8. 创建集合差异 ```python set8a = {1, 2, 3} set8b = {2, 3, 4} set8c = set8a.difference(set8b) print(set8c) ``` 9. 检查一个集合是否是另一个集合的子集 ```python set9a = {1, 2, 3} set9b = {2, 3} set9c = set9b.issubset(set9a) print(set9c) ``` 10. 从给定的集合中删除所有元素 ```python set10 = {"Red", "Green", "Black", "White"} set10.clear() print(set10) ``` 11. 在一个集合中查找最大值和最小值 ```python set11 = {1, 2, 3, 4, 5} max_value = max(set11) min_value = min(set11) print("Max value in set: ", max_value) print("Min value in set: ", min_value) ``` 12. 查找集合的长度 ```python set12 = {1, 2, 3, 4, 5} length = len(set12) print("Length of set: ", length) ``` 13. 检查给定值是否存在于集合中 ```python set13 = {1, 2, 3, 4, 5} value = 3 if value in set13: print("Value exists in set") else: print("Value does not exist in set") ``` 14. 检查两个给定的集合是否没有共同的元素 ```python set14a = {1, 2, 3} set14b = {4, 5, 6} set14c = set14a.isdisjoint(set14b) print(set14c) ``` 15. 从第一组中删除第二组的交集 ```python set15a = {1, 2, 3} set15b = {2, 3, 4} set15a.difference_update(set15b) print(set15a) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值