Python中字典(Dictionary)用法实例详解
在Python编程中,字典是一种非常有用的数据类型。它们允许我们存储键/值对,并且能够快速地通过键查找对应的值。本文将详细介绍Python中字典的用法和示例。
创建字典
要创建一个字典,可以用花括号{}括起来定义键值对,每一个键值对用冒号分隔。例如,下面的代码创建了一个简单的字典:
my_dict = {"key1": "value1", "key2": "value2", "key3": "value3"}
访问字典中的值
通常,我们可以通过键来访问字典中的值。例如:
my_dict = {"apple": "red", "banana": "yellow", "grape": "purple"}
print(my_dict["apple"]) # 输出 "red"
print(my_dict["grape"]) # 输出 "purple"
但是,如果我们尝试使用不存在的键进行访问,则会抛出KeyError异常。因此,我们可以使用get()方法来避免这种情况:
print(my_dict.get("apple")) # 输出 "red"
print(my_dict.get("orange")) # 输出 "None"
遍历字典
通过for循环,我们可以遍历字典中的所有键值对。例如:
my_dict = {"apple": "red", "banana": "yellow", "grape": "purple"}
for key in my_dict:
print(key + ":" + my_dict[key])
这将依次输出每一个键值对,例如:
apple:red
banana:yellow
grape:purple
修改字典
可以使用键来修改字典中的值。例如:
my_dict = {"apple": "red", "banana": "yellow", "grape": "purple"}
my_dict["apple"] = "green"
print(my_dict) # 输出 {"apple": "green", "banana": "yellow", "grape": "purple"}
添加键值对
添加键值对也非常简单,可以使用下面的方式:
my_dict = {"apple": "red", "banana": "yellow", "grape": "purple"}
my_dict["orange"] = "orange"
print(my_dict) # 输出 {"apple": "red", "banana": "yellow", "grape": "purple", "orange": "orange"}
删除键值对
删除一个键值对,可以使用del语句。例如:
my_dict = {"apple": "red", "banana": "yellow", "grape": "purple", "orange": "orange"}
del my_dict["orange"]
print(my_dict) # 输出 {"apple": "red", "banana": "yellow", "grape": "purple"}
示例1:计算列表中每个元素出现的次数
我们可以使用字典来计算列表中每个元素出现的次数。例如,下面的列表:
my_list = ["cat", "dog", "cat", "bird", "dog", "cat"]
出现了3个猫、2个狗和1个鸟。可以使用以下代码来计算:
my_list = ["cat", "dog", "cat", "bird", "dog", "cat"]
my_counts = {}
for item in my_list:
if item in my_counts:
my_counts[item] += 1
else:
my_counts[item] = 1
print(my_counts) # 输出 {"cat": 3, "dog": 2, "bird": 1}
示例2:使用字典来缓存计算结果
有时候我们需要缓存某些函数的计算结果,以便在下一次使用相同的输入时,可以直接返回已经计算出的结果,避免重复计算。这时候,就可以使用字典来缓存结果。例如:
def expensive_compute(n):
print("computing %d" %n)
return n*n
my_cache = {}
def cached_compute(n):
if n in my_cache:
return my_cache[n]
else:
result = expensive_compute(n)
my_cache[n] = result
return result
print(cached_compute(5)) # 输出 computing 5 以及 25
print(cached_compute(5)) # 直接输出 25,不再重新计算
这里,我们定义了一个expensive_compute函数,它会计算一个数的平方,但是由于计算较为耗时,我们希望每个数只需要计算一次。那么我们就可以使用字典来缓存已经计算完成的结果。在cached_compute函数中,如果n已经存在于my_cache中,则直接返回结果,否则调用expensive_compute计算结果,并将n和结果存入my_cache中。