Python基本数据结构之字典类型(dict)用法分析
一、字典类型定义及特点
1.定义
字典是Python中重要的一种数据类型,用花括号{}生成,格式为:
d = {key1: value1, key2: value2}
其中,d为字典名,key为索引,value为对应的值,各个键值对之间用逗号隔开,键和值之间用冒号分隔。
2.特点
字典类型与其他数据类型的不同之处在于它具有以下几个特点:
- 字典中的元素是通过键值对(keys:values)的方式来存储和访问的,因此具有快速查找的效率;
- 字典中的键是唯一的,而值则不必唯一;
- 字典中的键必须是不可变类型(如数字、字符串、元组等),而值可以是任意类型;
- 字典是无序的,即字典中元素的排列顺序是不确定的。
二、字典类型的基本操作
1.访问字典元素
字典类型中通过键来访问其对应的值,代码如下:
# 定义字典对象
d = {'name': 'John', 'age': 25, 'sex': 'male'}
# 获取字典中元素的值
print(d['name']) # 输出John
print(d['age']) # 输出25
print(d['sex']) # 输出male
2.添加键值对
字典类型中通过赋值的方式来添加新的键值对,代码如下:
# 定义字典对象
d = {'name': 'John', 'age': 25}
# 添加新的键值对
d['sex'] = 'male'
# 打印字典
print(d) # 输出 {'name': 'John', 'age': 25, 'sex': 'male'}
3.修改键值对
字典类型中可以通过赋值的方式修改已有的键值对,代码如下:
# 定义字典对象
d = {'name': 'John', 'age': 25}
# 修改键值对
d['name'] = 'Jack'
# 打印字典
print(d) # 输出 {'name': 'Jack', 'age': 25}
4.删除键值对
字典类型中可以通过del语句删除指定的键值对,代码如下:
# 定义字典对象
d = {'name': 'John', 'age': 25}
# 删除键值对
del d['age']
# 打印字典
print(d) # 输出{'name': 'John'}
5.遍历字典元素
字典类型中可以使用for循环遍历字典中的所有键值对,代码如下:
# 定义字典对象
d = {'name': 'John', 'age': 25, 'sex': 'male'}
# 遍历字典输出所有元素
for key, value in d.items():
print(key, value)
输出结果为:
name John
age 25
sex male
三、字典常用方法
1. clear()
清空字典中的所有元素,代码如下:
# 定义字典对象
d = {'name': 'John', 'age': 25}
# 清空字典
d.clear()
# 打印字典
print(d) # 输出 {}
2. copy()
复制字典。如果直接将一个字典赋值给另一个变量,两个变量实际上会指向同一个字典对象,因此修改其中一个变量会影响另一个变量。使用copy()方法可以复制一个新的字典,代码如下:
# 定义字典对象
d1 = {'name': 'John', 'age': 25}
# 复制字典
d2 = d1.copy()
# 修改d1中的一个元素
d1['name'] = 'Jack'
# 打印d1和d2
print(d1) # 输出{'name': 'Jack', 'age': 25}
print(d2) # 输出{'name': 'John', 'age': 25}
3. get()
根据键获取对应的值。与通过索引获取值的方法不同的是,如果指定的键不存在于字典中,get()方法不会报错,而是返回None(也可返回指定的默认值),代码如下:
# 定义字典对象
d = {'name': 'John', 'age': 25}
# 通过键获取值
print(d.get('name')) # 输出John
# 尝试使用不存在的键获取值
print(d.get('sex')) # 输出None
# 设置默认值并获取值
print(d.get('sex', 'unknown')) # 输出unknown
4. pop()
根据键删除并返回对应的值。代码如下:
# 定义字典对象
d = {'name': 'John', 'age': 25}
# 删除并返回值
value = d.pop('name')
# 打印字典和被删除的值
print(d) # 输出{'age': 25}
print(value) # 输出John
四、示例说明
1.使用字典统计字符串中每个字符出现次数
# 定义字符串
s = 'hello, world!'
# 统计每个字符出现的次数
d = {}
for c in s:
if c in d:
d[c] += 1
else:
d[c] = 1
# 打印结果
print(d) # 输出{'h': 1, 'e': 1, 'l': 3, 'o': 2, ',': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1, '!': 1}
2.使用字典实现一个简单的词频统计器
# 读取文件
with open('text.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 将文本转换为单词序列
words = text.split()
# 统计每个单词出现的次数
d = {}
for word in words:
if word in d:
d[word] += 1
else:
d[word] = 1
# 按照出现次数降序排序
sorted_pairs = sorted(d.items(), key=lambda x: x[1], reverse=True)
# 输出结果
for pair in sorted_pairs:
print(pair[0], pair[1])
以上就是Python中字典类型的基本用法。希望可以帮助大家更好地理解和应用这个重要的数据类型。