字典和列表一样也有许多方法,在Python开发中,字典有着举足轻重的地位,掌握字典的操作方法相当重要。
1、clear()清空字典所有元素
clear()函数用于移除字典中的所有元素,使其成为一个空字典。比如,我们在开发一个日志分析应用时,查看完之前的日志后想要清空缓存的日志数据,以便开始处理下一天的日志,可以使用clear()函数删除字典中的所有的元素,将字典清空。例如:
动手练一练:
# 清空字典
a = {
"Apple":"苹果",
"Banana":"香蕉",
"Cherry":"樱桃",
}
print(a) # 输出 {'Apple': '苹果', 'Banana': '香蕉', 'Cherry': '樱桃'}
print("-------使用clear()将字典清空-------")
a.clear()
print(a) # 输出 {}
执行以上代码,输出结果为:
{'Apple': '苹果', 'Banana': '香蕉', 'Cherry': '樱桃'}
-------使用clear()将字典清空-------
{}
2、copy()复制一份字典
复制字典和复制列表一样,如果只是简单通过赋值方法复制的话,则只是引用之前的内容,如果对复制后的字典做修改的话,也会改变原先的字典内容。copy()方法则不一样,相当于完整地复制了一份新的副本。字典的新副本是独立于原始字典的,也就是说,对原始字典的修改不会影响新的副本。例如:
动手练一练:
a = {
"Apple":"苹果",
"Banana":"香蕉",
"Cherry":"樱桃",
}
c = a
b = a.copy()
print(a)
print(c)
print(b)
print("-------这是虚线-------")
c["Orange"] = "橙子"
print(a)
print(c)
print(b)
执行以上代码,输出结果为:
{'Apple': '苹果', 'Banana': '香蕉', 'Cherry': '樱桃'}
{'Apple': '苹果', 'Banana': '香蕉', 'Cherry': '樱桃'}
{'Apple': '苹果', 'Banana': '香蕉', 'Cherry': '樱桃'}
-------这是虚线-------
{'Apple': '苹果', 'Banana': '香蕉', 'Cherry': '樱桃', 'Orange': '橙子'}
{'Apple': '苹果', 'Banana': '香蕉', 'Cherry': '樱桃', 'Orange': '橙子'}
{'Apple': '苹果', 'Banana': '香蕉', 'Cherry': '樱桃'}
上面的例子中,我们首先定义了一个字典为a,后来使用copy()函数的操作,将这个字典中的值全部赋值给了一个新的字典b,最后再将字典输出,并且字典b不会随着字典a的修改而发生改变。
3、fromkeys()创建一个新字典
dict.fromkeys()方法是Python字典(dict)提供的一个工具方法,其作用是根据指定的键(key)创建一个新的字典,例如:
动手练一练:
seq = ("年龄", "身高", "体重")
a = dict.fromkeys(seq)
print("没有指定默认值:", a)
b = dict.fromkeys(seq, 18)
print("指定默认值:", b)
执行以上代码,输出结果为:
没有指定默认值: {'年龄': None, '身高': None, '体重': None}
指定默认值: {'年龄': 18, '身高': 18, '体重': 18}
上面的例子中,Python字典“dict.fromkeys(第一个参数,第二个参数)”函数用于创建一个新字典,第一个参数以序列seq中的元素做字典的键,第二个参数为字典所有键对应的初始值。
4、get()返回键对应的值
get()函数是Python中一个重要的方法,它可以用来获取字典中键对应的值,并返回该键对应的值,如果键不存在于字典中,则返回None,例如:
动手练一练:
a = {
"姓名": "张三",
"年龄": 18,
"体重": 40,
"爱好": "吃",
"缺点": None, # 注意:None是一个特殊的常量,它表示“空值”或“不存在”
}
print(a.get("姓名")) # 输出 张三
print(a.get("缺点")) # 输出 None
print(a.get("优点")) # 键“优点”不存在时,默认值返回None
print(a.get("优点", "暂无信息")) # 键“优点”不存在时,默认值返回“暂无信息”
执行以上代码,输出结果为:
张三
None
None
暂无信息
上面的例子中,get(第一个参数,第二个参数)方法有两个参数,第一个必填参数为指定要搜索的键,第二个参数用于返回指定键的值,如果键不存在,就返回指定第二个参数的内容。如果没有填写第二个参数,当键不存在时返回默认值None。
5、keys()返回字典里的所有键
keys()可以将字典中的键以列表的形式返回,例如:
动手练一练:
a = {
"Apple":"苹果",
"Banana":"香蕉",
"Cherry":"樱桃",
}
print(a.keys())
执行以上代码,输出结果为:
dict_keys(['Apple', 'Banana', 'Cherry'])
上面的例子中,使用keys()方法可以方便地获取字典中的键,进而对键进行遍历、查找、筛选等操作,keys()经常与“in”操作符组合使用,例如:
动手练一练:
a = {
"Apple":"苹果",
"Banana":"香蕉",
"Cherry":"樱桃",
}
print(a.keys()) # 输出 dict_keys(['Apple', 'Banana', 'Cherry'])
print("是否存在Apple?", "Apple" in a.keys()) # 输出 True(真)
print("是否存在Python?", "Python" in a.keys()) # 输出 False(假)
执行以上代码,输出结果为:
dict_keys(['Apple', 'Banana', 'Cherry'])
是否存在Apple? True
是否存在Python? False
6、values()返回字典里的所有值
values()可将字典中的值以列表的形式返回,和keys()方法一样,经常与“in”操作符组合使用,例如:
动手练一练:
a = {
"Apple":"苹果",
"Banana":"香蕉",
"Cherry":"樱桃",
}
print(a.values()) # 输出 dict_values(['苹果', '香蕉', '樱桃'])
print("是否存在苹果?", "苹果" in a.values()) # 输出 True(真)
print("是否存在葡萄?", "葡萄" in a.values()) # 输出 False(假)
执行以上代码,输出结果为:
dict_values(['苹果', '香蕉', '樱桃'])
是否存在苹果? True
是否存在葡萄? False
7、items()返回字典里的所有键和值
items()方法用于返回一个包含所有键值对(即字典中的每个键及其对应的值)的元组列表。items()方法返回的元组列表中,每个元组中的第一个元素表示字典中的一个键,第二个元素表示该键对应的值。这是一个非常重要的方法,因为它允许我们遍历字典中的所有键值对。例如:
动手练一练:
a = {
"Apple":"苹果",
"Banana":"香蕉",
"Cherry":"樱桃",
}
b = a.items()
print(b) # 输出 dict_items([('Apple', '苹果'), ('Banana', '香蕉'), ('Cherry', '樱桃')])
print("-------这是虚线-------")
for k, v in b:
print(k,"=>",v)
# 输出 Apple => 苹果
# 输出 Banana => 香蕉
# 输出 Cherry => 樱桃
执行以上代码,输出结果为:
dict_items([('Apple', '苹果'), ('Banana', '香蕉'), ('Cherry', '樱桃')])
-------这是虚线-------
Apple => 苹果
Banana => 香蕉
Cherry => 樱桃
上面的例子中,我们通过调用items()方法获得字典中的所有键值对,并返回一个元组列表,再通过for循环遍历该元组列表。在后面的教程中我们将会详细讲解for循环遍历。
items()方法是Python字典中非常重要的一个方法,在遍历、修改、删除、查找字典元素时都经常会使用到。熟练掌握items()方法的使用技巧,可以大大提高Python编程的效率,让程序员更加快速地实现各种复杂的编程任务。