Python的集合(Set)

自学Python的第六天,今天感觉学的东西不多,那就复习一下前几天的集合吧.

我们知道,list列表是[],元组是(),而集合想必就是{}了,一些基本的规则与前面的都差不太多,只是与前两个区别最大的是没有索引的,是无序的,所以你没法用下标索引的方式来访问元素 .

4.1集合的创建

用花括号创建呗

thisset = {"apple", "banana", "cherry"}

 4.2更改集合中的 元素

不能更改,不能更改,不过可以 添加新的元素,用add()方法来添加一个元素,用update()方法来添加一堆元素

thisset={1,2,3,4}

thisset.add(5)

thisset.update([77,22])

值得注意的是,集合里面的元素不能重复,也就是你如果往集合里面添加已有的元素,相当于无添加

4.3 获取集合长度

 老方法 len()了,不举例了

4.4删除元素或整个集合

如果是删除单个元素的话,可以用remove()方法或discard()方法或pop()方法,remove和discard的用法是一致的,就是删除指定元素 

thisset={1,2,3,4}

thisset.remove(1)

thisset.discard(2)

而pop()方法是删除最后一个元素,由于集合set是无序的,所以你不知道删掉了哪一个

thisset.pop() 

 如果你想清空一整个集合,可以用clear()方法

thisset.clear() 

 如果你想删掉这个集合,就用del关键字

del thisset

4.5集合的合并

集合无法通过+号来实现两个集合的相加,但是可以使用union()方法来实现相加,例如

set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}
set3 = set1.union(set2)

也可以用update()方法来把一个集合的元素添加到另外的集合中去

set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}
set1.update(set2)

  4.6 集合set的方法

接下来来介绍集合的方法,集合的方法比较,而且使用频率也挺高

(1) copy()方法

顾名思义,就是复制方法

(2)difference()方法

用法为set1.difference(set2),其作用是返回存在于set1而不存在set2中的元素,例如

x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
z = x.difference(y)

(3) difference_update()方法

用法是set1.sifference_update(),作用是删除set1中set1与set2共同存在的元素

set1={1,2,3,4}
set2={2,22,12,33}
set1.difference_update(set2)

(4) intersection()方法

与difference()方法刚好相反,intersection()方法返回两个集合共同存在的元素

x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
z = x.intersection(y) 

(5) intersection_update()方法

这个方法是删除存在于set1中而不存在set2中的元素

x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
x.intersection_update(y) 

(6) isdisjoint()方法

该方法用来检测两个集合是否有交集,如果有返回False,没有则返回True

x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "facebook"}
z = x.isdisjoint(y) 

(7) issubse() 方法

 该方法用来检测是一个集合是否是另外一个集合的子集,是就返回True,不是就返回False

x = {"a", "b", "c"}
y = {"f", "e", "d", "c", "b", "a"}
z = x.issubset(y) 

(8) issuperset()方法

与issubset()方法相反,issuperset()方法用来检测一个集合是否包含另外一个集合

x = {"f", "e", "d", "c", "b", "a"}
y = {"a", "b", "c"}
z = x.issuperset(y) 

(9)symmetric_difference()方法

该方法用来返回两个集合中的并集,除了都有的元素

x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}

z = x.symmetric_difference(y) 

(10)symmetric_difference_update()

与9差不多

x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
x.symmetric_difference_update(y) 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是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、付费专栏及课程。

余额充值