Python-集合
集合介绍
Python中的集合类似于数学中的集合概念,它是一组无序、不可重复元素序列,集合用{value1,value2}创建,某种程度上可以把集合看作是没有值的字典。
特点:
- 不同元素组成
- 无序
- 集合中的元素必须是不可变类型
集合的创建
# 创建空集合必须使用 set() ,而不是 {} ,{} 是用来创建空字典
jihe = set()
print(type(jihe))
# 结果:
<class 'set'>
jihe = set('helloword')
print(jihe)
# 结果:
{'r', 'w', 'e', 'l', 'h', 'o', 'd'}
# 使用 {} 创建集合
jihe1 = {'河南', '内蒙古', '河北'}
print(type(jihe1))
# 结果:
<class 'set'>
集合的常用操作
- 判断是否存在
shuiguo = {'apple', 'orange', 'pear', 'banana'}
print('apple' in shuiguo)
# 结果:
True
- 集合间的运算
num_1 = set('asdfgh')
num_2 = set('dcxvnbhg')
# 集合 num_1 中包含而集合 num_2 中不包含的元素
print(num_1 - num_2)
# 结果:
{'a', 's', 'f'}
# 集合 num_1 或 num_2 中包含的所有元素
print(num_1 | num_2)
# 结果:
{'d', 'x', 'b', 'h', 'n', 'a', 'f', 'v', 'g', 's', 'c'}
# 集合 num_1 和 num_2中都包含了的元素
print(num_1 & num_2)
# 结果:
{'g', 'd', 'h'}
# 不同时包含于 num_1 和 num_2 的元素
print(num_1 ^ num_2)
# 结果:
{'x', 'b', 'n', 'a', 'f', 'v', 's', 'c'}
- 添加元素
# 添加元素 语法:
set.add( x )
# 添加元素,参数可以是列表,元组,字典 语法:
set.update( x )
- 移除元素
# 方法一:将元素 x 从集合 set 中移除,如果元素不存在,则会发生错误
set.remove( x )
# 方法二:如果元素不存在,也不会发生错误
set.discard( x )
# 方法三:随机删除集合中的一个元素
set.pop()
- 计算集合元素个数
# 语法
len(set)
# 例子:
s1 = {'lisi', 'zhsan', 'erdan'}
print(len(s1))
# 结果:
3
- 清空集合
# 语法:
set.clear()
- 内置方法
方法 | 描述 |
---|---|
add() | 为集合添加元素 |
clear() | 移除集合内所有元素 |
copy() | 拷贝一个集合 |
difference() | 返回多个集合的差集 |
difference_update() | 移除集合中的元素,该元素在指定的集合也存在 |
discard() | 删除集合中指定的元素 |
intersection() | 返回集合的交集 |
intersection_update() | 返回集合的交集 |
isdisjoint() | 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False |
issubset() | 判断指定集合是否为该方法参数集合的子集 |
issuperset() | 判断该方法的参数集合是否为指定集合的子集 |
pop() | 随机移除元素 |
remove() | 移除指定元素 |
symmetric_difference() | 返回两个集合中不重复的元素集合 |
symmetric_difference_update() | 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中 |
union() | 返回两个集合的并集 |
update() | 给集合添加元素 |