手撕Python之散列类型

在Python中,散列类型是一个重要的数据结构,它包括两个主要的内置类型:set(集合)和dict(字典)。散列类型的最大特点是,它们可以在平均情况下提供常数时间的查找效率,因此在处理大量数据时尤其高效。

1. 字典(dict)

字典是Python中非常常用的散列类型,它由键(key)和值(value)组成。每个键都是唯一的,且通过键可以快速地访问到对应的值。

1.1 创建字典

你可以通过多种方式创建字典,最常见的是使用花括号 {},或者使用 dict() 函数。

# 使用花括号创建字典
my_dict = {
    "name": "张三",
    "age": 25,
    "city": "北京"
}

# 使用 dict() 函数创建字典
my_dict2 = dict(name="李四", age=30, city="上海")

print(my_dict)
print(my_dict2)

1.2 访问和修改字典

通过键可以访问字典中的值,并且字典支持增、删、查、改等操作:

# 访问字典中的值
print(my_dict["name"])  # 输出: 张三

# 修改字典
my_dict["age"] = 26
print(my_dict)  # 输出: {'name': '张三', 'age': 26, 'city': '北京'}

# 添加新键值对
my_dict["gender"] = "男"
print(my_dict)  # 输出: {'name': '张三', 'age': 26, 'city': '北京', 'gender': '男'}

# 删除键值对
del my_dict["city"]
print(my_dict)  # 输出: {'name': '张三', 'age': 26, 'gender': '男'}

1.3 遍历字典

你可以使用for循环来遍历字典的键、值或键值对:

# 遍历字典的键
for key in my_dict:
    print(key)

# 遍历字典的值
for value in my_dict.values():
    print(value)

# 遍历字典的键值对
for key, value in my_dict.items():
    print(f"{key}: {value}")

2. 集合(set)

集合是一种无序不重复的元素集合,它主要用于去重和成员测试,以及集合运算(比如并集、交集等)。

2.1 创建集合

集合可以使用花括号 {} 或者 set() 函数来创建:

# 使用花括号创建集合
my_set = {1, 2, 3, 4, 5}

# 使用 set() 函数创建集合
my_set2 = set([3, 4, 5, 6, 7])

print(my_set)
print(my_set2)

2.2 添加和删除元素

集合可以动态地添加和删除元素:

# 添加元素
my_set.add(6)
print(my_set)  # 输出: {1, 2, 3, 4, 5, 6}

# 删除元素
my_set.remove(3)
print(my_set)  # 输出: {1, 2, 4, 5, 6}

# 可以使用 discard() 方法,删除不存在的元素不会抛出异常
my_set.discard(10)  # 不会抛出异常

2.3 集合运算

集合支持多种运算,比如并集、交集和差集:

set_a = {1, 2, 3}
set_b = {3, 4, 5}

# 并集
union_set = set_a | set_b
print(union_set)  # 输出: {1, 2, 3, 4, 5}

# 交集
intersection_set = set_a & set_b
print(intersection_set)  # 输出: {3}

# 差集
difference_set = set_a - set_b
print(difference_set)  # 输出: {1, 2}

总结

在Python中,散列类型如字典和集合是非常强大且灵活的数据结构,广泛应用于各种场景。字典提供了键值对的存储,使得数据的查询和操作非常高效;而集合则用来处理独特元素的集合问题,方便进行各种集合运算。掌握这些散列类型可以极大地提高你的编程效率。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部