跳至主要內容

字典

blacklad大约 2 分钟PythonPythondict字典

字典

字典,是以键值对(key -> value)的方式存储数据,是一个无序的序列。

类似于现实中的汉语字典,字典的键就相当于一个需要查的字,字典的值就相当于字的含义。

一、字典的使用

在 Python 中,用{}来定义一个字典。

# 定义一个学生的字典,记录学生的个人信息
student = {
    "name": "Python",
    "age": 33,
    "sex": "男"
}

print(student)
{'name': 'Python', 'age': 33, 'sex': '男'}

代码中 name、age、sex 为字典的 key,每个 key 都有一个 value 与之对应。

字典的值可以是数、字符串、列表和字典等所有的 Python 数据结构。

二、字典的读取

通过字典的 key 可以很直接取到对应的值。

student = {
    "name": "Python",
    "age": 33,
    "sex": "男"
}
print(student['name'])
print(student['age'])
Python
33

但是如果用不存在的 key 去取,Python 会提示错误,退出运行。

student = {
    "name": "Python",
    "age": 33,
    "sex": "男"
}
print(student['age1']);
> Traceback (most recent call last):
>   File test_dict.py", line 10, in <module>
>     print(student['age1'])
> KeyError: 'age1'

Python 也提供了 get 方法,当 key 不存在时,返回一个默认值,避免程序退出。

student = {
    "name": "Python",
    "age": 33,
    "sex": "男"
}
# age1不存在,返回第二个值10
print(student.get("age1", 10))
10

三、获取字典所有的key

  1. keys() 获取字典中的所有 key
  2. values() 获取字典中的所有 value 对
  3. items() 获取字典中的所有 key, value 对
student = {
    "name": "Python",
    "age": 33,
    "sex": "男"
}

print(student.keys())
print(student.values())
print(student.items())
dict_keys(['name', 'age', 'sex'])
dict_values(['Python', 33, '男'])
dict_items([('name', 'Python'), ('age', 33), ('sex', '男')])

四、判断是否包含某个key

通过 in、not in 关键字可以判断字典中是否包含某个 key。

student = {
    "name": "Python",
    "age": 33,
    "sex": "男"
}

print('name' in student)
print('namea' in student)
print('name' not in student)
True
False
False

五、添加键值对

对于已经创建好的字典也可以添加键值对。

student = {
    "name": "Python",
    "age": 33,
    "sex": "男"
}

student['height']=200
print(student)
{'name': 'Python', 'age': 33, 'sex': '男', 'height': 200}

六、修改键值对

对于已经创建好的字典也可以修改其中一部分值。

student = {
    "name": "Python",
    "age": 33,
    "sex": "男"
}
# 修改age对应的值
student['age']=32
print(student)
{'name': 'Python', 'age': 32, 'sex': '男'}

七、删除键值对

对于字典中不需要的键值对,通过 del 语句将其删除。

student = {
    "name": "Python",
    "age": 33,
    "sex": "男"
}

# 删除sex这个key
del student['sex']
print(student)
{'name': 'Python', 'age': 33}

上次编辑于:
贡献者: blacklad