如何计算Python列表中代表变量名的字符串元素对应值之和
实现方案
核心逻辑是把每个字符串拆成单个字符,匹配每个字符对应的变量值,再拼接加法表达式、计算求和结果即可,有两种常见写法:
- 写法1(推荐):单独维护变量和值的映射字典,逻辑独立不会和全局其他变量冲突
# 定义变量名和对应值的映射 var_dict = { "a": 1, "b": 2, "c": 3 } a_list = ["ab", "abc", "ac", "b"] for item in a_list: # 拼接加法表达式 expression = "+".join(item) # 计算所有对应值的和 sum_result = sum(var_dict[char] for char in item) # 按格式输出 print(f"{expression} = {sum_result}")
- 写法2:直接读取当前全局环境下的已定义变量,适合变量已经提前定义好不想重复写映射的场景,通过Python内置的
globals()获取全局变量字典即可
a = 1 b = 2 c = 3 a_list = ["ab", "abc", "ac", "b"] for item in a_list: expression = "+".join(item) sum_result = sum(globals()[char] for char in item) print(f"{expression} = {sum_result}")
两段代码运行后输出结果一致:
a+b = 3 a+b+c = 6 a+c = 4 b = 2
注:你给出的期望输出里b = 3属于笔误,按照你定义的b=2,单独b的计算结果应为2
内容的提问来源于stack exchange,提问作者Sakil
相关产品推荐
相关产品推荐

