Python的集合和多重集合都是用来保存一组元素的数据结构。但是它们之间还是有一些区别的,我会分别进行介绍。
集合(set)
集合是一组无序、不重复的元素,主要用于去重和判断元素是否存在。在Python中,使用set()
函数创建一个空的集合,或者使用大括号{}
来定义一个有元素的集合。
- 创建集合:
# 空集合
empty_set = set()
print(empty_set) # output: set()
# 包含元素的集合
languages = {'Python', 'Java', 'C', 'PHP', 'JavaScript'}
print(languages) # output: {'C', 'Java', 'Python', 'PHP', 'JavaScript'}
# 或者
languages = set(['Python', 'Java', 'C', 'PHP', 'JavaScript'])
print(languages) # output: {'C', 'Java', 'Python', 'PHP', 'JavaScript'}
-
常用方法:
-
add()
:向集合中添加一个元素 remove()
:从集合中删除一个元素pop()
:随机删除一个元素clear()
:清空集合
languages.add('Ruby')
print(languages) # output: {'C', 'Java', 'Python', 'PHP', 'JavaScript', 'Ruby'}
languages.remove('Java')
print(languages) # output: {'C', 'Python', 'PHP', 'JavaScript', 'Ruby'}
languages.pop()
print(languages) # output: {'PHP', 'JavaScript', 'Ruby', 'C'}
languages.clear()
print(languages) # output: set()
此外,还可以对两个集合进行交、并、差等操作。
set1 = set([1, 2, 3, 4, 5])
set2 = set([3, 4, 5, 6, 7])
print(set1 & set2) # output: {3, 4, 5} # 交集
print(set1 | set2) # output: {1, 2, 3, 4, 5, 6, 7} # 并集
print(set1 - set2) # output: {1, 2} # 差集
多重集合
多重集合也称作“袋子”,是一种可以允许元素重复出现的数据结构。在Python中,可以使用collections
模块中的Counter
类来创建并操作多重集合。
- 创建多重集合:
可以通过给Counter
类传入一个可迭代对象来创建一个包含多重集合的Counter
对象。如下:
from collections import Counter
multi_set = Counter(['apple', 'orange', 'banana', 'apple', 'orange', 'orange'])
print(multi_set) # output: Counter({'orange': 3, 'apple': 2, 'banana': 1})
- 常用方法:
与集合相比,多重集合的操作多了一个获取元素出现次数的方法。具体来说,Counter
对象还包括以下方法:
update()
:合并多个多重集合most_common()
:返回出现频率最高的元素和它们的个数elements()
:返回一个包含所有元素的迭代器subtract()
:从一个多重集合中删除另一个多重集合中出现的元素和它们的个数
multi_set2 = Counter({'orange': 2, 'apple': 1})
multi_set.update(multi_set2)
print(multi_set) # output: Counter({'orange': 5, 'apple': 3, 'banana': 1})
print(multi_set.most_common(2)) # output: [('orange', 5), ('apple', 3)]
print(list(multi_set.elements())) # output: ['banana', 'orange', 'orange', 'orange', 'orange', 'orange', 'apple', 'apple', 'apple']
multi_set.subtract(multi_set2)
print(multi_set) # output: Counter({'orange': 3, 'apple': 2, 'banana': 1})
以上就是Python集合和多重集合的使用方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Python 集合和多重集合 - Python技术站