使用字典进行动态编程
在你的程序中,你想要执行各种计算,例如计算卫星的总数。 此外,当你进行更高级的编程时,你可能会发现你需要从文件或数据库中加载此类信息,而不是直接编码到 Python 中。
为了帮助支持这些场景,Python 使你能够将字典中的键和值都视为列表。 可以动态确定键和值,并执行各种计算。
想象一个存储每月降雨量的字典。 你可能会有每个月份和相关降雨量的键。 你想将总降雨量相加,而使用每个单独的键编写代码来执行该操作的过程相当繁琐。
检索所有键和值
keys()
方法返回一个列表对象,其中包含所有键。 可以使用此方法循环访问字典中的所有项。
想象一下,你具有以下字典,存储了过去三个月的降雨量。
rainfall = {
'october': 3.5,
'november': 4.2,
'december': 2.1
}
假设要显示所有降雨量的列表。 可以键入每个月的名称,但这很繁琐。
for key in rainfall.keys():
print(f'{key}: {rainfall[key]}cm')
october: 3.5cm
november: 4.2cm
december: 2.1cm
备注
你仍可以将方括号 ([ ]
) 与变量名一起使用,而不是使用硬编码字符串字面量。
确定字典中是否存在某个键
更新字典中的某个值时,如果该键不存在,Python 将覆盖现有值或创建一个新值。 如果想添加到某个值而不是覆盖该值,可以使用 in
检查该键是否存在。 例如,如果要向十二月添加一个值,或创建一个新值(如果该月不存在),则可以使用以下代码:
if 'december' in rainfall:
rainfall['december'] = rainfall['december'] + 1
else:
rainfall['december'] = 1
# Because december exists, the value will be 3.1
检索所有值
与 keys()
类似,values()
返回字典中所有值的列表,其中不包含其各自的键。 使用键进行标记时,values()
会很有帮助,如前面的示例所示,其中键是月份的名称。 可以使用 values()
来确定总降雨量:
total_rainfall = 0
for value in rainfall.values():
total_rainfall = total_rainfall + value
print(f'There was {total_rainfall}cm in the last quarter.')
There was 10.8cm in the last quarter.