无名阁,只为技术而生。流水不争先,争的是滔滔不绝。

(python 集合) 详解Python 集合和多重集合 Python中的集合和多重集合:基本概念和操作 全网首发(图文详解1)

前沿技术 Micheal 4个月前 (06-01) 55次浏览 已收录 扫描二维码

(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)

请注意,Countermultiset 有一些特殊的方法来处理元素的频率(计数),它们在普通集合中是没有的。

集合和多重集合在许多实际应用中非常有用,例如,在数据分析中去除或者统计重复项,在算法中处理无重复值的集合操作等。以上代码展示了他们的一些常见用法。你可以根据需要,将这些代码片段集成到你的Python项目中。
(pd.cut) 详解pandas.cut()(将数值分段)函数使用方法 Pandas.cut() 函数:将连续数值数据分割成离散区间 全网首发(图文详解1)
(out of memory) Linux报 “out of memory” 异常的原因以及解决办法 Linux报告“out of memory”异常解决办法 全网首发(图文详解1)

喜欢 (0)
[]
分享 (0)
关于作者:
流水不争先,争的是滔滔不绝