Python可变集合和不可变集合的构造方法大全
Python中集合(Set)是一个无序、不重复的元素集,它支持交集、并集、差集等运算,可以方便地进行集合操作。
在Python中,集合分为可变集合和不可变集合两种类型,可变集合可以添加或删除元素,而不可变集合则不允许修改。本文将对Python中可变集合和不可变集合的构造方法进行详细讲解。
Python可变集合
Python中可变集合使用set()
或{}
构造,下面是一些常用的可变集合构造方法:
1. 空集合
使用set()
方法构造一个空的集合:
empty_set = set()
2. 使用可迭代对象构造集合
使用一个可迭代对象(如列表、元组、字符串)构造一个集合:
numbers = set([1, 2, 3, 4, 5])
strings = set('hello')
3. 使用生成器构造集合
使用生成器构造一个集合:
generator_set = set(i for i in range(10) if i % 2 == 0)
4. 添加元素
使用add()
方法向集合中添加元素:
numbers = {1, 2, 3, 4, 5}
numbers.add(6)
5. 删除元素
使用remove()
方法从集合中删除元素:
numbers = {1, 2, 3, 4, 5}
numbers.remove(4)
Python不可变集合
不可变集合使用frozenset()
构造,不允许修改其内容,下面是一些常用的不可变集合构造方法:
1. 空集合
使用frozenset()
方法构造一个空的集合:
empty_set = frozenset()
2. 使用可迭代对象构造集合
使用一个可迭代对象(如列表、元组、字符串)构造一个不可变集合:
numbers = frozenset([1, 2, 3, 4, 5])
strings = frozenset('hello')
使用不可变集合的好处是可以作为字典的键或其他集合的元素,可以避免修改集合导致影响到字典或其他集合。
下面是一个使用不可变集合作为字典键的示例:
d = {frozenset({1, 2}): 'hello'}
print(d[frozenset({1, 2})]) # 输出 'hello'
示例说明
示例1
下面是一个使用可变集合的示例,创建一个包含多个颜色的集合,然后添加新的颜色,最后输出集合中的全部颜色:
colors = {'red', 'blue', 'green'}
colors.add('yellow')
for color in colors:
print(color)
输出结果为:
red
blue
green
yellow
示例2
下面是一个使用不可变集合的示例,创建两个字典,其中一个字典的键为不可变集合,另一个字典的键为可变集合,然后输出字典中的内容:
immutable_dict = {frozenset({1, 2}): 'hello'}
mutable_dict = {(1, 2): 'world'}
print(immutable_dict)
print(mutable_dict)
输出结果为:
{frozenset({1, 2}): 'hello'}
{(1, 2): 'world'}
从结果可以看出,使用可变集合作为字典键会产生TypeError错误,而使用不可变集合则不会出现该问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python可变集合和不可变集合的构造方法大全 - Python技术站