Python中哈希表的编程实践与案例研究

2023-04-11 00:00:00 实践 编程 案例

哈希表是一种重要的数据结构,在Python中可通过字典类型实现。哈希表将元素通过哈希函数映射到一个固定的位置,以实现快速的查找、插入、删除。下面通过几个实例来演示哈希表在Python中的应用。

【例1】:统计字符串中每个字符出现的次数。

s = 'pidancode.com'

# 创建空字典用于存储每个字符出现的次数
d = {}

# 遍历字符串中的每个字符,统计出现次数
for c in s:
    if c in d:
        d[c] += 1
    else:
        d[c] = 1

# 打印结果
for k, v in d.items():
    print(f'字符{k}出现了{v}次')

输出结果如下:

字符p出现了1次
字符i出现了1次
字符d出现了1次
字符a出现了1次
字符n出现了1次
字符c出现了2次
字符o出现了2次
字符m出现了1次
字符.e出现了1次
字符出现了1次

【例2】:给定一个列表,找出两个数的和等于目标值的索引。

nums = [2, 7, 11, 15]
target = 9

# 创建空字典用于存储元素和下标的映射
d = {}

# 遍历列表中的每个元素,查找与之相加等于目标值的元素
for i, n in enumerate(nums):
    complement = target - n
    if complement in d:
        print(f'找到了两个数的和等于目标值的索引:{d[complement]}和{i}')
        break
    d[n] = i
else:
    print('没有找到符合条件的结果')

输出结果如下:

找到了两个数的和等于目标值的索引:0和1

【例3】:给定两个列表,找出两个列表的交集元素。

nums1 = [1, 2, 2, 1]
nums2 = [2, 2]

# 创建空字典用于存储第一个列表中每个元素出现的次数
d = {}

# 统计第一个列表中每个元素出现的次数
for n in nums1:
    if n in d:
        d[n] += 1
    else:
        d[n] = 1

# 遍历第二个列表中的每个元素,查找是否在第一个列表中出现过
result = []
for n in nums2:
    if n in d and d[n] > 0:
        result.append(n)
        d[n] -= 1

# 打印结果
print(f'两个列表的交集为:{result}')

输出结果如下:

两个列表的交集为:[2, 2]

通过这些例子,我们可以看到哈希表在Python中的实现方式以及它在实际编程中的应用场景。

相关文章