python–集合and函数(一)-09
1. 集合 1.1 集合简介 集合表现形式 set集合和列表⾮常相似 不同点: 集合只能存储不可变对象 #存储不可变对象 s={[1,2,3],[4,5,6]} print(s,type(s))$TypeError: unhashable type: 'list' 集合中存储的对象是⽆序的 #存储对象是无序的 s={1,5,3,4} print(s,type(s))#{1, 3, 4, 5} 集合不能出现重复元素 #集合中不能出现重复的元素 s={1,5,3,4,4,4,4} print(s,type(s))#{1, 3, 4, 5} 使⽤{}来创建集合 #创建集合{} s={1, 在Python编程语言中,集合(Set)是一种非常重要的数据结构,它主要用于存储不重复的、无序的元素。集合在很多场景下具有独特的用途,比如成员关系测试、去重、集合运算等。本文将深入探讨Python集合的基础知识,包括创建、操作以及集合的运算。 1. 集合的创建与特性 集合可以通过大括号{}或者内置函数set()来创建。需要注意的是,集合中的元素必须是不可变类型,如整型、浮点型、字符串、元组等。例如: ```python s = {1, 2, 3, 4} ``` 尝试将可变对象如列表放入集合会引发错误: ```python s = {[1, 2, 3], [4, 5, 6]} # TypeError: unhashable type: 'list' ``` 集合中的元素是无序的,并且不允许有重复: ```python s = {1, 5, 3, 4, 4, 4, 4} # 结果:{1, 3, 4, 5} ``` 2. 集合的操作 - 添加元素:使用add()方法向集合中添加单个元素。 ```python s = {'a', 'b', 1, 2, 3} s.add(20) # 结果:{1, 2, 3, 'a', 20, 'b'} ``` - 更新集合:使用update()方法可以合并两个集合,将其他集合的元素添加到当前集合中。 ```python s = {'a', 'b', 1, 2, 3} s2 = set('hello') s.update(s2) # 结果:{1, 2, 3, 'l', 'e', 'o', 'h', 'a', 'b'} ``` - 删除元素:remove()方法用于移除集合中的指定元素,如果元素不存在,会抛出异常;pop()方法随机删除一个元素,通常删除最后一个元素。 ```python s = {'a', 'b', 1, 2, 3} s.remove(2) # 结果:{1, 'b', 3, 'a'} ``` - 清空集合:clear()方法用于清空集合中的所有元素。 ```python s = {'a', 'b', 1, 2, 3} s.clear() # 结果:set() ``` - 长度:len()函数用于获取集合中元素的数量。 ```python s = {'a', 'b', 1, 2, 3} len(s) # 结果:5 ``` 3. 集合的运算 集合支持多种数学运算,包括: - 交集(Intersection):使用&运算符计算两个集合的共同元素。 ```python s1 = {1, 2, 3, 4, 5} s2 = {4, 5, 6, 7, 8} s1 & s2 # 结果:{4, 5} ``` - 并集(Union):使用|运算符计算两个集合的所有元素,包括重复元素。 ```python s1 = {1, 2, 3, 4, 5} s2 = {4, 5, 6, 7, 8} s1 | s2 # 结果:{1, 2, 3, 4, 5, 6, 7, 8} ``` - 差集(Difference):使用-运算符计算在第一个集合中存在的但不在第二个集合中的元素。 ```python s1 = {1, 2, 3, 4, 5} s2 = {4, 5, 6, 7, 8} s1 - s2 # 结果:{1, 2, 3} ``` - 对称差集(Symmetric Difference):使用^运算符计算两个集合中互不相同的元素。 ```python s1 = {1, 2, 3, 4, 5} s2 = {4, 5, 6, 7, 8} s1 ^ s2 # 结果:{1, 2, 3, 6, 7, 8} ``` - 子集与超集(Subset and Superset):使用<=运算符检查一个集合是否是另一个集合的子集,使用>=运算符检查是否是超集。 ```python a = {1, 2, 4} b = {1, 2, 3, 4, 5} a <= b # True,a是b的子集 b >= a # True,b是a的超集 ``` 以上就是关于Python集合的基本概念和常用操作,了解并掌握这些知识,能帮助你在实际编程中更有效地利用集合这一强大的工具。集合运算在处理大量数据时,尤其在需要查找共同项、排除重复项或进行逻辑判断的场景中,显得尤为重要。