(python 集合) 详解Python 集合和多重集合
Python中的集合(set)和多重集合(collections.Counter或者multiset模块)是两种不同的数据结构。
- 集合(set):
集合是一个无序的不重复元素集。它的基本用法包括成员检测和消除重复元素。集合对象还支持像数学上的并集、交集、差集、对称差分等操作。
集合可以用大括号 {}
创建或者使用内置函数 set()
。空集合只能用 set()
,因为 {}
用来创建空字典。
下面给出一些集合的基本操作示例:
# 创建集合
myset = {1, 2, 3}
print(myset)
# 使用 set() 创建集合
myset2 = set([2, 3, 4, 4, 5])
print(myset2)
# 集合推导式
myset3 = {x for x in range(10) if x % 2 == 0}
print(myset3)
# 添加元素
myset.add(4)
print(myset)
# 移除元素
myset.discard(1)
print(myset)
# 集合操作
union_set = myset | myset2 # 并集
intersection_set = myset & myset2 # 交集
difference_set = myset - myset2 # 差集
symmetric_difference_set = myset ^ myset2 # 对称差集
print(union_set)
print(intersection_set)
print(difference_set)
print(symmetric_difference_set)
- 多重集合(Multiset):
多重集合是允许成员重复的集合。它的实现可以用collections
模块中的Counter
类,或者安装第三方库multiset
来完成。
示例:使用collections.Counter
作为多重集合:
from collections import Counter
# 创建多重集合
my_multiset = Counter(['apple', 'orange', 'apple', 'pear', 'orange', 'banana'])
print(my_multiset)
# 计数
print(my_multiset['apple'])
# 更新计数
my_multiset.update(['apple'])
print(my_multiset)
# 减少计数
my_multiset.subtract(['orange'])
print(my_multiset)
# 获取所有元素(包括重复元素)
print(list(my_multiset.elements()))
# 常见的Counter操作
counter1 = Counter('abracadabra')
counter2 = Counter('alacazam')
# 合并两个Counter对象
combined_counter = counter1 + counter2
print(combined_counter)
# 找到共同元素
common_elements = counter1 & counter2
print(common_elements)
请注意,Counter
和 multiset
有一些特殊的方法来处理元素的频率(计数),它们在普通集合中是没有的。
集合和多重集合在许多实际应用中非常有用,例如,在数据分析中去除或者统计重复项,在算法中处理无重复值的集合操作等。以上代码展示了他们的一些常见用法。你可以根据需要,将这些代码片段集成到你的Python项目中。
(pd.cut) 详解pandas.cut()(将数值分段)函数使用方法 Pandas.cut() 函数:将连续数值数据分割成离散区间 全网首发(图文详解1)
(out of memory) Linux报 “out of memory” 异常的原因以及解决办法 Linux报告“out of memory”异常解决办法 全网首发(图文详解1)