【python 字典(dict)和集合(set)】创建、访问、基本操作及各自的特点】
Python 中的字典(dict)和集合(set)都是内置的数据结构,它们各自有不同的用途和特点。以下是它们的创建、访问和基本操作,以及它们之间的区别和特点。
字典(Dict)
创建:
# 创建一个空字典
my_dict = {}
# 创建一个包含键值对的字典
my_dict = {'name': 'Alice', 'age': 25}
访问:
# 访问字典中的值
name = my_dict['name'] # 访问键为'name'的值
# 使用get方法访问,如果键不存在则返回None或指定的默认值
age = my_dict.get('age', 0) # 如果'age'键不存在,则返回0
基本操作:
# 添加键值对
my_dict['gender'] = 'Female'
# 删除键值对
del my_dict['age']
# 修改键值对
my_dict['name'] = 'Bob'
# 遍历字典
for key, value in my_dict.items():
print(key, value)
# 检查键是否存在
if 'name' in my_dict:
print("Key 'name' exists.")
集合(Set)
创建:
# 创建一个空集合
my_set = set()
# 创建一个包含元素的集合
my_set = {1, 2, 3, 4}
访问:
集合是无序的,不提供索引访问,但可以检查元素是否存在。
# 检查元素是否存在
if 3 in my_set:
print("3 is in the set")
基本操作:
# 添加元素
my_set.add(5)
# 删除元素
my_set.discard(2) # 移除元素,如果元素不存在不会报错
my_set.remove(4) # 移除元素,如果元素不存在会报错
# 清空集合
my_set.clear()
# 遍历集合
for element in my_set:
print(element)
# 集合运算
union_set = my_set.union({6, 7}) # 并集
intersection_set = my_set.intersection({1, 2, 3, 8}) # 交集
difference_set = my_set.difference({1, 2}) # 差集
symmetric_difference_set = my_set.symmetric_difference({1, 9}) # 对称差集
区别和特点
字典(Dict)特点:
- 存储键值对。
- 键必须是唯一的,值可以重复。
- 键可以是任何不可变类型,如字符串、数字或元组。
- 通过键来访问值。
- 可变类型,可以添加、删除和修改键值对。
- 用花括号
{}
表示。
集合(Set)特点:
- 存储无序的唯一元素。
- 元素必须是可哈希的,不能有可变类型,如列表。
- 不能通过索引访问元素,但可以快速检查元素是否存在。
- 可变类型,可以添加和删除元素。
- 支持数学上的集合运算,如并集、交集、差集等。
- 用花括号
{}
表示,但如果集合中的元素是可迭代的,需要在元素前后加上圆括号,例如{(1, 2)}
。
总的来说,字典适合存储和操作键值对数据,而集合适合进行元素的唯一性和集合运算。字典提供了通过键快速访问值的能力,而集合则提供了快速的成员检查和集合运算功能。