Python中不允许重复的数据结构
在Python中,有一些数据结构是不允许包含重复元素的,即同样的元素只能出现一次。这些数据结构在处理不重复的数据集合时非常有用,可以帮助我们去除重复元素,或者保证数据的唯一性。本文将介绍Python中常用的不允许重复的数据结构,包括集合(set)、字典(dict)和计数器(Counter)。
集合(set)
集合是Python中用来存储不重复元素的数据结构。集合中的元素是无序的,不能通过下标访问,但可以迅速判断一个元素是否存在于集合中。集合可以用花括号{}
或者set()
函数来创建。
创建集合
# 用花括号创建集合
s1 = {1, 2, 3, 4, 5}
print(s1) # {1, 2, 3, 4, 5}
# 用set()函数创建集合
s2 = set([1, 2, 3, 4, 5])
print(s2) # {1, 2, 3, 4, 5}
添加和删除元素
可以使用add()
方法向集合中添加新元素,使用remove()
方法删除元素。
s = {1, 2, 3}
s.add(4)
print(s) # {1, 2, 3, 4}
s.remove(2)
print(s) # {1, 3, 4}
集合运算
集合支持常见的集合运算,包括并集、交集、差集和对称差集。
s1 = {1, 2, 3}
s2 = {2, 3, 4}
# 并集:包含两个集合所有元素的集合
union = s1 | s2
print(union) # {1, 2, 3, 4}
# 交集:包含两个集合公共元素的集合
intersection = s1 & s2
print(intersection) # {2, 3}
# 差集:包含属于s1但不属于s2的元素的集合
difference = s1 - s2
print(difference) # {1}
# 对称差集:包含属于s1或s2但不同时属于二者的元素的集合
symmetric_difference = s1 ^ s2
print(symmetric_difference) # {1, 4}
字典(dict)
字典是Python中另一个常用的数据结构,用来存储键值对。字典中的键是唯一的,相同的键只会出现一次,而值可以重复。字典可以用花括号{}
或者dict()
函数来创建。
创建字典
# 用花括号创建字典
d1 = {'a': 1, 'b': 2, 'c': 3}
print(d1) # {'a': 1, 'b': 2, 'c': 3}
# 用dict()函数创建字典
d2 = dict([('a', 1), ('b', 2), ('c', 3)])
print(d2) # {'a': 1, 'b': 2, 'c': 3}
添加和删除元素
可以使用dict[key] = value
语法向字典中添加新元素,使用del dict[key]
语法删除元素。
d = {'a': 1, 'b': 2, 'c': 3}
d['d'] = 4
print(d) # {'a': 1, 'b': 2, 'c': 3, 'd': 4}
del d['b']
print(d) # {'a': 1, 'c': 3, 'd': 4}
遍历字典
可以使用for ... in ...
语法遍历字典中的键值对。
d = {'a': 1, 'b': 2, 'c': 3}
for key, value in d.items():
print(key, value)
获取所有键或值
可以使用keys()
方法获取字典中所有的键,使用values()
方法获取所有的值。
d = {'a': 1, 'b': 2, 'c': 3}
keys = d.keys()
print(keys) # dict_keys(['a', 'b', 'c'])
values = d.values()
print(values) # dict_values([1, 2, 3])
计数器(Counter)
Counter
是Python中的一个另类字典,用来跟踪可哈希对象的数量。Counter
中的元素是无序的,每个元素的次数以值的形式存储在字典中。
创建计数器
可以使用Counter()
函数来创建计数器。
from collections import Counter
c = Counter([1, 2, 2, 3, 3, 3])
print(c) # Counter({3: 3, 2: 2, 1: 1})
访问计数器元素
可以像访问字典一样,通过键来访问计数器中的元素。
c = Counter([1, 2, 2, 3, 3, 3])
print(c[2]) # 2
print(c[3]) # 3
更新计数器
可以使用update()
方法向计数器中添加新元素。
c = Counter([1, 2, 2, 3, 3, 3])
c.update([2, 3, 4])
print(c) # Counter({3: 4, 2: 3, 1: 1, 4: 1})
总结
在Python中,集合、字典和计数器是常用的不允许重复的数据结构。通过合理地使用这些数据结构,我们可以轻松地处理不重复的数据集合,去除重复元素,或者保证数据的唯一性。