Python常用数据类型--字典(2/2 字典的常用操作)

一.字典的常用操作

1. 增加操作

dic[key] = value:当key在原字典中不存在时,即为新增操作

【范例】向字典中添加键值对。

d = {"Name": "Jack"}
print(d)  # {'Name': 'Jack'}d["Age"] = 20
print(d)  # {'Name': 'Jack', 'Age': 20}

 2. 删除操作

del dic[key]:key必须存在!!!

dic.pop(key[,default]):删除指定的键值对,并返回对应的值;若key不存在直接返回给定的default值,不做删除操作;

若没有指定默认值则报错。

dic.popitem():删除按升序排序后运行的第一个键值对,并以元组的形式返回该键值对。若字典为空则报错。

dic.clear():删除字典内所有键值对,返回None。

【注意】字典对象仍然存在,只不过是内容被清空。

【范例】字典的删除操作。

d = {"name": "Jack", "age": 20, "gender": "male"}
print(d)  # {'name': 'Jack', 'age': 20, 'gender': 'male'}del d["age"]
print(d)  # {'name': 'Jack', 'gender': 'male'}
# dic.pop(key[,default]):删除指定的键值对,并返回对应的值;若key不存在直接返回给定的default值,不做删除操作;
#     若没有指定默认值则报错。
d.pop("gender")
print(d)  # {'name': 'Jack'}
num = {"a": 1, "b": 2, "c": 3}
# dic.popitem():删除按升序排序后运行的第一个键值对,并以元组的形式返回该键值对。若字典为空则报错。print(num.popitem())  # ('c', 3)print(num)  # {'a': 1, 'b': 2}

# dic.clear():删除字典内所有键值对,返回None。
num.clear()
print(num)  # {}

 3.修改操作

(1)只能改值,不能改key。

(2)修改单个键值对。

dic[key] = values:直接设置,若key不存在则新增;否则修改。

(3)批量修改键值对。

oldDic.update(newDic):根据新的字典,批量更细旧字典中的键值对;若字典中没有对应的key,则新增键值对。

【范例】字典的修改操作。

#       修改操作
# (1)只能改值,不能改key。
# (2)修改单个键值对。  dic[key] = values
# (3)批量修改键值对。  oldDic.update(newDic)
info = {"name": "Jane", "age": 18, "gender": "female"}
#  修改单个键值对。    dic[key] = valuesinfo["name"] = "Bruce"print(info)  # {'name': 'Bruce', 'age': 18, 'gender': 'female'}
newInfo = {"name": "Mike", "gender": "male", "job": "programmer"}
#  批量修改键值对。    oldDic.update(newDic)info.update(newInfo)
print(info)  # {'name': 'Mike', 'age': 18, 'gender': 'male', 'job': 'programmer'}

 4.查询操作

(1)查询字典中的单个值。

方式一:

dic[key]:若key不存在,则报错。

 方式二:

dic.get(key[,default]):若不存在对应的key,则取给定的默认值default;若无默认值,则为None但不会报错。

 方式三:

dic.setdefault(key[,default]):获取指定key对应的值。

若默认值没给定则使用None代替。

【范例】字典的查询操作。

info = {"name": "Jack", "age": 20}
# 查询操作
# 方式一:
# dic[key]:若key不存在,则报错。
print(info["name"])  # Jack
# 方式二:
# dic.get(key[, default]):若不存在对应的key,则取给定的默认值default;若无默认值,则为None但不会报错。
print(info.get("age"))  # 20print(info.get("gender"))  # None
# 方式三:
# dic.setdefault(key[, default]):获取指定key对应的值。
# 若key不存在,则设置给定默认值,并返回该值;若默认值没给定则使用None代替。
print(info.setdefault("age"))  # 20print(info.setdefault("gender"))  # Noneprint(info)  # {'name': 'Jack', 'age': 20, 'gender': None}

 (2)查询字典中所有键,值和键值对。

获取所有的值:

dic.values()

获取所有的键:

dic.keys()

获取字典的键值对:

dic.items()

【范例】实现查询字典中所有的键,值和键值对。

info = {"name": "Jack", "age": 20}
# 获取所有的值:
#  dic.values()
print(info.values())  # dict_values(['Jack', 20])

# 获取所有的键:
#  dic.keys()
print(info.keys())  # dict_keys(['name', 'age'])
# 获取字典的键值对:
#  dic.items()
print(info.items())  # dict_items([('name', 'Jack'), ('age', 20)])

 (3)字典的遍历操作

【范例】通过两种方法实现对字典的遍历操作。

info = {"name": "Jack", "age": 20}
# 遍历所有的key,然后通过指定的key获取到对应的值
# 1.先获取所有的key
infos = info.keys()
# 2.遍历所有的keyfor i in infos:
    print(i, info[i])
# name Jack
# age 20

# 直接获取所有的键值对
# 1.获取所有的键值对
kvs = info.items()
# 2.直接遍历for x, y in kvs:
    print(x, y)
# name Jack
# age 20

 5. 计算操作

len(dic):键值对的个数

【范例】计算字典中键值对的个数。

info = {"name": "Jack", "age": 20}
print(len(info))  # 2

 6. 判定操作

x in dic:判定dic中的key,是否存在x

x not in dic:判定dic中的key,是否不存在x

dic.has_key(key):已过期,建议用in代替

【范例】字典中的判定操作。

info = {"name": "Jack", "age": 20}
#   x in dic:判定dic中的key,是否存在xprint("name" in info)  # Trueprint("address" in info)  # False
#  x not in dic:判定dic中的key,是否不存在x