1. 理解 Python 中 dict 的基本概念
在开始探索 Python 中 dict 的高阶特性之前,我们先来理解一下 dict 的基本概念。
dict,全称为 dictionary,是 Python 中内置的一种数据类型,它是一种容器类型,可以存储各种类型的对象,其中每个对象都有一个唯一的 键,对应一个 值。可以把字典看成是键值对集合,每个键与其对应值构成了一个 项。
例如,创建一个简单的字典:
person = {'name': '张三', 'age': 18, 'gender': '男'}
print(person)
# 输出:{'name': '张三', 'age': 18, 'gender': '男'}
这里,字典 person
有 3 个键值对,分别是 'name': '张三','age': 18 和 'gender': '男'。
2. dict 的遍历方式
2.1 遍历字典的键
要遍历字典的键,可以使用字典的 keys()
方法。
person = {'name': '张三', 'age': 18, 'gender': '男'}
for key in person.keys():
print(key)
# 输出:name age gender
也可以使用 for key in person:
的方式遍历字典的键,因为这种方式默认是遍历字典的键。
2.2 遍历字典的值
要遍历字典的值,可以使用字典的 values()
方法。
person = {'name': '张三', 'age': 18, 'gender': '男'}
for value in person.values():
print(value)
# 输出:张三 18 男
2.3 遍历字典的键值对
要同时遍历字典的键和值,可以使用字典的 items()
方法。
person = {'name': '张三', 'age': 18, 'gender': '男'}
for key, value in person.items():
print(key, value)
# 输出:name 张三 age 18 gender 男
3. dict 的常用操作
3.1 判断键是否存在
判断字典中是否存在某个键,可以使用 in
关键字。
person = {'name': '张三', 'age': 18, 'gender': '男'}
if 'name' in person:
print('存在 name 键')
else:
print('不存在 name 键')
# 输出:存在 name 键
也可以使用字典的 get()
方法,如果键存在,返回对应的值,如果不存在,返回指定的默认值(默认为 None
)。
person = {'name': '张三', 'age': 18, 'gender': '男'}
name = person.get('name')
salary = person.get('salary', 0)
print(name) # 输出:张三
print(salary) # 输出:0
3.2 添加或修改键值对
要向字典中添加或修改键值对,可以直接使用 []
进行赋值操作,如果键已经存在,则会修改其对应的值;如果键不存在,则会添加键值对。
person = {'name': '张三', 'age': 18, 'gender': '男'}
person['salary'] = 10000
person['age'] = 20
print(person)
# 输出:{'name': '张三', 'age': 20, 'gender': '男', 'salary': 10000}
4. 使用 dict 进行统计
可以使用字典来进行统计,例如统计一个字符串中每个字符出现的次数。
s = 'hello'
d = {}
for char in s:
if char in d:
d[char] += 1
else:
d[char] = 1
print(d)
# 输出:{'h': 1, 'e': 1, 'l': 2, 'o': 1}
这里,我们先将空字典 d
初始化,然后遍历字符串中的每个字符,如果字符已经在字典中,则将其计数加 1;否则,将其添加到字典中,并将计数设置为 1。
5. 小结
Python 中的 dict 是一种非常常用的数据类型,可以用来存储键值对,并支持各种操作,例如遍历、添加、修改等等。掌握了 dict 的高阶特性,可以让我们的代码更加简洁、高效。