字典的操作

1. 目录

2. 增

1. [] 处理法

  • 字典没有索引
  • dict["name"] = "XiaoYu"
  • 添加或修改,根据key是否存在所决定
  • 类似C++中的 map
  • 字典中每一个key都是唯一的
  • 字典中数据量没有限制
  • 字典中的value可以是任何的python内置数据类型的对象,或者自定义类型的对象

2. setdefault

  • 获取某个key的value,如果key不存在于字典中,将会添加key并将value设为默认值
my_dict = {}
value = my_dict.setdefault('name', "XiaoYu")
print("dict:", my_dict, "value:", value) 
# 输出 dict: {"name": "XiaoYu"} value: XiaoYu

3. 删

1. clear

  • 清空当前字典中所有数据
my_dict = {"name": "XiaoYu", "age": "17"}
my_dict.clear()
print(my_dict) # 输出 {}

2. pop

  • 删除字典中指定的key,并将其结果返回,如果key不存在则直接报错
my_dict = {"name": "XiaoYu", "age": "17", "pop": "This is a pop value"}
pop_value = my_dict.pop("pop")
print(pop_value)
# 输出 This is a pop value
print(my_dict)
# 输出 {"name": "XiaoYu", "age": "17"}

3. del

  • 删除整个字典获取某个键值对
my_dict = {"name": "XiaoYu", "age": "17"}
del my_dict["name"]
print(my_dict) # 输出 {"age": "17"}
del my_dict
print(my_dict) # 报错,字典已经不存在

4. popitem

  • 删除当前字典里末尾一组的键值对并将其返回
  • 如果列表为空直接报错
my_dict = {"name": "XiaoYu", "age": "17"}
print(my_dict.popitem())
# 输出 ("age", "17")

4. 改

1. update

  • 添加新的字典,如果新字典中有和原字典相同的key,则该key的value会被新字典的value覆盖
my_dict = {}
new_dict = {"name": "XiaoYu"}
my_dict.update(new_dict)
print(my_dict) # 输出 {"name": "XiaoYu"}

2. copy

  • 将当前字典赋值一个新的字典
  • 与列表中的copy基本一致
my_dict = {"name": "XiaoYu", "age": "17"}
new_dict = my_dict.copy()
print(id(my_dict) == id(new_dict)) # 输出 False

5. 查

1. keys

  • 获取当前字典中所有的键(key)
my_dict = {"name": "XiaoYu", "age": "17"}
print(my_dict.keys()) # 输出 dict_keys(['name', 'age'])

2. values

  • 获取当前字典中所有键值对中的值(value)
my_dict = {"name": "XiaoYu", "age": "17"}
print(my_dict.values()) # 输出 dict_values(['XiaoYu', '17'])

3. []的获取办法

  • 字典+中括号内写key,不进行赋值操作,即被视为获取
  • 返回key对应的value值
  • [] 如果获取key不存在,直接报错
my_dict = {"name": "XiaoYu", "age": "17"}
name = my_dict["name"]
print(name) # 输出 XiaoYu

4. get

  • 获取当前字典中指定key的value
  • 传入:key = 需要获取value的key,default = 不存在默认返回值,默认为None
  • get如果key不存在,返回默认值
  • 开发中优先使用get
my_dict = {"name": "XiaoYu", "age": "17"}
name = my_dict.get("name")
print(name) # 输出 XiaoYu

5. in 与 not in

  • in 与 not in 判断key是否在字典里面
my_dict = {"name": "XiaoYu", "age": "17"}
print("name" in my_dict) # 输出 True
print("name" not in my_dict) # 输出 False