如何对Python字典中存储为字符串的整数值执行算术运算
问题分析
你的代码存在两个问题:
- 语法错误:
value = chessclubset["Age"][0] += 1属于非法写法,增量赋值+=和普通赋值=不能合并在同一条语句中 - 类型错误:
Age列表存储的所有值都是字符串类型,无法直接和整数执行算术运算
解决方案
使用Python内置的int()函数将字符串转为整数即可完成运算,根据是否需要修改原字典数据,可选择对应实现方式:
场景1:仅获取计算后的值,不修改原字典内容
chessclubset = { "name" : ["joe", "mama", "bob", "billy"], "Age" : ["10", "11", "12", "14"], "Grade" : ["10", "11", "12", "9"]} # 取出第一个年龄转整数后加1 age_add_one = int(chessclubset["Age"][0]) + 1 print(age_add_one) # 输出结果:11
场景2:更新原字典中对应年龄的值,保持原有字符串存储格式
chessclubset = { "name" : ["joe", "mama", "bob", "billy"], "Age" : ["10", "11", "12", "14"], "Grade" : ["10", "11", "12", "9"]} # 转整数加1后,再转回字符串更新到原字典 chessclubset["Age"][0] = str(int(chessclubset["Age"][0]) + 1) print(chessclubset["Age"][0]) # 输出结果:"11" print(chessclubset["Age"]) # 输出:['11', '11', '12', '14']
优化建议
如果后续需要频繁对年龄、年级字段做算术操作,建议初始化字典时就把对应值存为整数类型,避免重复做类型转换:
chessclubset = { "name" : ["joe", "mama", "bob", "billy"], "Age" : [10, 11, 12, 14], "Grade" : [10, 11, 12, 9]} # 直接加1即可 chessclubset["Age"][0] += 1 print(chessclubset["Age"][0]) # 输出 11
内容的提问来源于stack exchange,提问作者Saju
相关产品推荐
相关产品推荐

