变量类型和运算符
4
列表、元组、字典和集合
-
4.1
什么是序列,Python序列详解
-
4.2
Python列表(list)
-
4.3
Python list列表添加元素
-
4.4
Python list列表删除元素
-
4.5
Python list列表修改元素
-
4.6
Python list列表查找元素
-
4.7
结合实例,再深入剖析Python list列表!
-
4.8
Python range()快速初始化数字列表
-
4.9
Python list列表实现栈和队列
-
4.10
Python tuple元组详解
-
4.11
Python元组和列表的区别
-
4.12
Python列表和元组的底层实现是怎样的?
-
4.13
Python dict字典
-
4.14
Python dict字典基本操作
-
4.15
Python dict字典方法完全攻略
-
4.16
Python使用字典格式化字符串
-
4.17
Python set集合
-
4.18
Python set集合基本操作
-
4.19
Python set集合方法
-
4.20
Python frozenset集合
-
4.21
深入底层了解Python字典和集合,一眼看穿他们的本质!
-
4.22
Python深拷贝和浅拷贝详解
Python字符串常用方法
Python流程控制
函数和lambda表达式
Python类和对象
类特殊成员(属性和方法)
Python异常处理机制
Python模块和包
Python文件操作(I/O)
其中,setname 表示要添加元素的集合,element 表示要添加的元素内容。
需要注意的是,使用 add() 方法添加的元素,只能是数字、字符串、元组或者布尔类型(True 和 False)值,不能添加列表、字典、集合这类可变的数据,否则 Python 解释器会报 TypeError 错误。例如:
a = {1,2,3}
a.add((1,2))
print(a)
a.add([1,2])
print(a)
运行结果为:
{(1, 2), 1, 2, 3}
Traceback (most recent call last):
File "C:\Users\mengma\Desktop\1.py", line 4, in <module>
a.add([1,2])
TypeError: unhashable type: 'list'
从set集合中删除元素
删除现有 set 集合中的指定元素,可以使用 remove() 方法,该方法的语法格式如下:
setname.remove(element)
使用此方法删除集合中元素,需要注意的是,如果被删除元素本就不包含在集合中,则此方法会抛出 KeyError 错误,例如:
a = {1,2,3}
a.remove(1)
print(a)
a.remove(1)
print(a)
运行结果为:
{2, 3}
Traceback (most recent call last):
File "C:\Users\mengma\Desktop\1.py", line 4, in <module>
a.remove(1)
KeyError: 1
上面程序中,由于集合中的元素 1 已被删除,因此当再次尝试使用 remove() 方法删除时,会引发 KeyError 错误。
如果我们不想在删除失败时令解释器提示 KeyError 错误,还可以使用
discard() 方法
,此方法和 remove() 方法的用法完全相同,唯一的区别就是,当删除集合中元素失败时,此方法不会抛出任何错误。
a = {1,2,3}
a.remove(1)
print(a)
a.discard(1)
print(a)
运行结果为:
{2, 3}
{2, 3}
Python set集合做交集、并集、差集运算
集合最常做的操作就是进行交集、并集、差集以及对称差集运算,首先有必要给大家普及一下各个运算的含义。
图 1 集合示意图
图 1 中,有 2 个集合,分别为 set1={1,2,3} 和 set2={3,4,5},它们既有相同的元素,也有不同的元素。以这两个集合为例,分别做不同运算的结果如表 1 所示。
表 1 Python set集合运算
Python运算符
取两集合公共的元素
>>> set1 & set2
取两集合全部的元素
>>> set1 | set2
{1,2,3,4,5}
取一个集合中另一集合没有的元素
>>> set1 - set2
{1,2}
>>> set2 - set1
{4,5}
取集合 A 和 B 中不属于 A&B 的元素
>>> set1 ^ set2
{1,2,4,5}