在你的程序中,你想要执行各种计算,例如计算卫星的总数。 此外,当你进行更高级的编程时,你可能会发现你需要从文件或数据库中加载此类信息,而不是直接编码到 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 + valueprint(f'There was {total_rainfall}cm in the last quarter.')
There was 10.8cm in the last quarter.