Python 集合操作及方法总结

2023-10-13 18:17:42 浏览数 (1)

一、集合概念 集合(set)是一个无序的不重复元素序列。 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。 集合的唯一性,无序性和确定性。

二、创建集合 用法:

# 创建保存多个元素的集合 parame = {value01, value02, ...} # 创建一个空集合 set(value) 示例:

sets = {1, 2, 3, 4, 5} 1 三、操作集合 添加单个元素 sets.add(6) print(sets)

add()将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。 添加多个元素 sets.update([7, 8]) print(sets)

update()可以添加元素,且参数可以是列表,元组,字典等。x 可以有多个,用逗号分开。 移除元素 # 移除存在的元素 sets.remove(2) # 移除不存在的元素 sets.remove(9) # KeyError: 9 print(sets)

remove()将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。 # 移除存在的元素 sets.discard(1) # 移除不存在的元素 sets.discard(10)

discard()也是移除集合中的元素,且如果元素不存在,不会发生错误。 sets.pop() print(sets)

pop()随机删除集合中的一个元素。 set 集合的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。

计算集合元素个数 print(len(sets))

len()计算集合中某个元素的个数。 四、清空集合 sets.clear() print(sets)

clear()清空指定的集合。 五、判断元素是否在集合中存在 x in sets 1 in判断元素 x 是否在集合 sets 中,存在返回 True,不存在返回 False。 六、集合内置方法 add():为集合添加元素。 clear():移除集合中的所有元素。 copy():拷贝一个集合。 difference():返回多个集合的差集。 discard():删除集合中指定的元素。 intersection():返回集合的交集。 isdisjoint():判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。 issubset():判断指定集合是否为该方法参数集合的子集。 issuperset():判断该方法的参数集合是否为指定集合的子集。 pop():随机移除元素。 remove():移除指定元素。 symmetric_difference():返回两个集合中不重复的元素集合。 union():返回两个集合的并集。 update():给集合添加元素。 七、集合实例讲解 以下代码在交互环境下运行:

代码语言:javascript复制
>>>basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
 >>> print(basket)                      # 这里演示的是去重功能
 {'orange', 'banana', 'pear', 'apple'}
 >>> 'orange' in basket                 # 快速判断元素是否在集合内
 True
 >>> 'crabgrass' in basket
 False
 
 >>> # 下面展示两个集合间的运算.
 ...
 >>> a = set('abracadabra')
 >>> b = set('alacazam')
 >>> a                                  
 {'a', 'r', 'b', 'c', 'd'}
 >>> a - b                              # 集合a中包含而集合b中不包含的元素
 {'r', 'd', 'b'}
 >>> a | b                              # 集合a或b中包含的所有元素
 {'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
 >>> a & b                              # 集合a和b中都包含了的元素
 {'a', 'c'}
 >>> a ^ b                              # 不同时包含于a和b的元素
 {'r', 'd', 'b', 'm', 'z', 'l'}

0 人点赞