一篇文章带你了解python字典基础

  • Post category:Python

一篇文章带你了解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 以查看每个字符出现的次数。

总结

了解了字典的基本操作,我们可以使用字典存储和处理各种数据。在实际开发中,字典是非常常用的数据结构之一。