一篇文章带你了解Python字典基础
什么是字典
Python字典(dictionary)是一种可变容器类型,可以存储任意类型的对象,如其他对象容器(列表、元组),数字、字符串。字典使用键(key)-值(value)对存储数据,具有极快的查找速度。
字典的创建
字典通过花括号 {} 创建,其中用冒号 : 分隔键值对,用逗号 , 分隔多个键值对。示例代码如下:
phone_book = {'Tom': 123, 'Jerry': 234, 'Tony': 345}
字典的基本操作
1. 访问字典中的值
通过键访问字典中的值,如果键不存在则会抛出 KeyError 异常。例如:
print(phone_book['Tom']) # 输出 123
2. 修改字典中的值
通过键修改字典中的值,如果键不存在则会将其添加到字典中。例如:
phone_book['Tom'] = 456
print(phone_book) # 输出 {'Tom': 456, 'Jerry': 234, 'Tony': 345}
3. 删除字典中的键值对
使用 del 关键字删除字典中的键值对。例如:
del phone_book['Tom']
print(phone_book) # 输出 {'Jerry': 234, 'Tony': 345}
4. 获取字典中所有的键和值
可以使用 keys() 方法获取字典中所有的键,使用 values() 方法获取所有的值,使用 items() 方法获取所有的键值对。例如:
print(phone_book.keys()) # 输出 dict_keys(['Jerry', 'Tony'])
print(phone_book.values()) # 输出 dict_values([234, 345])
print(phone_book.items()) # 输出 dict_items([('Jerry', 234), ('Tony', 345)])
5. 判断字典中是否存在某个键
使用 in 关键字判断字典中是否存在某个键。例如:
print('Tom' in phone_book) # 输出 False
print('Jerry' in phone_book) # 输出 True
示例说明
示例 1
假设有一个学生成绩单,存储了学生姓名与对应的成绩,要求按照成绩从高到低输出学生姓名。代码实现如下:
scores = {'Tom': 80, 'Jerry': 90, 'Tony': 70}
sorted_scores = sorted(scores.items(), key=lambda x: x[1], reverse=True)
for name, score in sorted_scores:
print(name)
代码中,首先将字典转换成了由元组组成的列表,通过 lambda 表达式指定排序的关键字为元组的第二个元素(即成绩)。使用 sorted() 函数进行排序,reverse=True 表示降序排列。
示例 2
统计一段字符串中每个字符出现的次数。代码实现如下:
s = 'hello world'
count = {}
for ch in s:
if ch in count:
count[ch] += 1
else:
count[ch] = 1
print(count)
代码中,使用一个字典 count 存储每个字符出现的次数,遍历字符串 s,通过 if 判断字典中是否存在该字符,如果存在则将次数加一,否则将该字符添加到字典中并将次数赋为 1。最后输出字典 count 以查看每个字符出现的次数。
总结
了解了字典的基本操作,我们可以使用字典存储和处理各种数据。在实际开发中,字典是非常常用的数据结构之一。