Python中的字典函数——dict的高级用法
Python中的dict是一种非常常见和有用的数据类型,它用来存储键值对,可以快速的查找和访问数据。除了基本的用法外,Python中的字典函数还提供了一些高级用法,可以帮助我们更方便的处理数据以及提高代码的效率。
1. setdefault方法
setdefault方法可以一次性检查一个键是否存在,如果存在则返回相应值,如果不存在则设置键值,并返回设定的默认值。这个方法可以避免判断一个键是否存在后再去添加一个键值对的重复操作。
示例代码:
d = {"apple": 1, "banana": 2}
# 如果d已经存在"pear"这个键,则返回它的值,否则返回0,并在d中添加"pear":0这个键值对
d.setdefault("pear", 0)
print(d)
# 如果d已经存在"banana"这个键,则返回它的值,否则返回0,并不会修改d
d.setdefault("banana", 0)
print(d)
输出结果:
{'apple': 1, 'banana': 2, 'pear': 0}
{'apple': 1, 'banana': 2, 'pear': 0}
2. update方法
update方法可以合并两个字典,将一个字典中的键值对加入到另一个字典中。如果在加入的过程中有相同的键,则以update方法中传入的字典为准,即更新原有键的值。
示例代码:
d1 = {"apple": 1, "banana": 2}
d2 = {"banana": 3, "pear": 4}
# d1和d2合并后,"banana"的值变为了3,"pear"被加入了d1中
d1.update(d2)
print(d1)
输出结果:
{'apple': 1, 'banana': 3, 'pear': 4}
3. pop方法
pop方法用于删除字典中指定键,并返回其对应的值。如果指定的键不存在,则可以传入一个默认值作为pop方法的参数,这样可以避免抛出异常。
示例代码:
d = {"apple": 1, "banana": 2}
# 删除"apple"这个键,并返回其对应的值
value = d.pop("apple")
print(value, d)
# 如果"pear"这个键不存在,则返回默认值-1
value = d.pop("pear", -1)
print(value, d)
输出结果:
1 {'banana': 2}
-1 {'banana': 2}
4. popitem方法
popitem方法随机弹出字典中的一个键值对,并返回该键值对。由于字典是无序的,因此弹出的键值对也是随机的。如果字典为空,则会抛出异常。
示例代码:
d = {"apple": 1, "banana": 2, "pear": 3}
# 弹出一个随机的键值对
key, value = d.popitem()
print(key, value, d)
# 弹出另一个随机的键值对
key, value = d.popitem()
print(key, value, d)
输出结果:
pear 3 {'apple': 1, 'banana': 2}
banana 2 {'apple': 1}
5. fromkeys方法
fromkeys方法用于创建一个新字典,其中包含指定的键,并将它们的值设置为一个默认值。默认值默认为None,也可以传入一个自定义的默认值。这个方法通常用于创建一个具有默认值的空字典。
示例代码:
keys = ["apple", "banana", "pear"] # 创建一个包含keys中所有键的空字典 d = dict.fromkeys(keys) print(d) # 创建一个包含keys中所有键,值都为0的字典 d = dict.fromkeys(keys, 0) print(d)
输出结果:
{'apple': None, 'banana': None, 'pear': None}
{'apple': 0, 'banana': 0, 'pear': 0}
6. items方法和values方法
items方法可以将字典中的所有键值对转化为一个可遍历的元组序列,每个元组中包含键和对应的值。values方法则用于返回字典中所有的值,并返回一个可遍历的序列。
示例代码:
d = {"apple": 1, "banana": 2, "pear": 3}
# 返回所有键值对组成的元组序列
print(d.items())
# 返回所有值组成的序列
print(d.values())
输出结果:
dict_items([('apple', 1), ('banana', 2), ('pear', 3)])
dict_values([1, 2, 3])
7. keys方法
keys方法返回字典中所有的键,并返回一个可遍历的序列。通常用于遍历字典中的所有键。
示例代码:
d = {"apple": 1, "banana": 2, "pear": 3}
# 返回所有键组成的序列
print(d.keys())
# 遍历所有键,输出键值对
for key in d.keys():
print(key, d[key])
输出结果:
dict_keys(['apple', 'banana', 'pear']) apple 1 banana 2 pear 3
8. get方法
get方法用于返回字典中指定键的值,如果指定的键不存在,则返回默认值。默认值默认为None,也可以传入一个自定义的默认值。
示例代码:
d = {"apple": 1, "banana": 2}
# 返回"apple"这个键的值
value = d.get("apple")
print(value)
# 如果"pear"这个键不存在,则返回默认值-1
value = d.get("pear", -1)
print(value)
输出结果:
1 -1
总之,Python中的字典函数提供了很多有用的方法,可以帮助我们更方便的处理字典,提高代码的效率。掌握这些方法的使用,可以让我们在处理数据时事半功倍。
