定义一个字典

字典的数据类型 类似于接口测试中的json格式数据。由key: value 这样的键值对组成。

  1. user = {
  2. "name":"zhangsan",
  3. "age": 20,
  4. "friends": ["lisi","wangwu"]
  5. }
  6. print(user, type(user))

执行结果

  1. {'name': 'zhangsan', 'age': 20, 'friends': ['lisi', 'wangwu']} <class 'dict'>

需要注意的是: 字典中的key 是没有重复,如果重复,也会自动去重,后面的会将前面的覆盖。

  1. user = {
  2. "name":"zhangsan",
  3. "age": 20,
  4. "friends": ["lisi","wangwu"],
  5. "age": 22 # 会将上面的覆盖掉。
  6. }
  7. print(user, type(user))

image.png

访问字典中的值🎈

可以通过 [key] 的方式来访问字典中对应的值。

  1. user = {
  2. "name":"zhangsan",
  3. "age": 20,
  4. "friends": ["lisi","wangwu"],
  5. "isgood": False
  6. }
  7. # 获取 name的值
  8. print(user["name"]) # zhangsan
  9. # 获取 age 的值
  10. print(user["age"]) # 20
  11. # 访问 第二个朋友的姓名
  12. print(user["friends"][1]) # wangwu

但是这种方式有个弊端。 如果 key 不存在,程序会报错

  1. user = {
  2. "name":"zhangsan",
  3. "age": 20,
  4. "friends": ["lisi","wangwu"],
  5. "isgood": False
  6. }
  7. # 访问 sex (没有 sex)
  8. print(user["sex"])

image.png

get 获取key

为了防止访问的时候没有对应的key 报keyError错误。 可以通过get方法

  1. user = {
  2. "name":"zhangsan",
  3. "age": 20,
  4. "friends": ["lisi","wangwu"],
  5. "isgood": False
  6. }
  7. print(user.get("name")) # zhangsan user["name"] 效果是一样的
  8. print(user.get("friends")[1]) # wangwu user["friends"][1]
  9. # 下面大家注意
  10. print(user.get("sex")) # None 没有 sex 会返回None 程序不报错, 跟 user["sex"] 不一样

在写代码的时候, [] 和 get 方式都可以访问key ,但是为了更加保险,一般都是用get() 来获取,因为这样即便key值没有 程序也不会报错。不会影响别的代码。

更改或添加字典中的值

直接通过 =赋值的方式即可。

user = {
    "name":"zhangsan",
    "age": 20,
    "friends": ["lisi","wangwu"],
    "isgood": False
}

user["age"] = 22
print(user) # {'name': 'zhangsan', 'age': 22, 'friends': ['lisi', 'wangwu'], 'isgood': False}
# 添加sex
user["sex"] = "男"
print(user) # {'name': 'zhangsan', 'age': 22, 'friends': ['lisi', 'wangwu'], 'isgood': False, 'sex': '男'}

数字也可以作为字典的key


num = {
    0: "a",
    1: "b",
    3: "d"
}
print(num) # {0: 'a', 1: 'b', 3: 'd'}
num[2] = "c"
print(num) # {0: 'a', 1: 'b', 3: 'd', 2: 'c'}