Python中基于键名对元组值进行除法运算的实现方法
基于键名对元组值进行除法运算的实现方法
可以通过将分母列表转换为字典来快速匹配键名,再遍历分子列表完成除法运算,具体实现如下:
代码示例
numerator_list = [('Sam', 10), ('Alex', 8), ('Tom', 12)] denominator_list = [('Alex', 2), ('Tom', 3), ('Sam',5)] # 将分母列表转为字典,便于快速查找键对应的值 denominator_dict = dict(denominator_list) # 遍历分子列表,按键名匹配计算除法 my_output = [(name, num / denominator_dict[name]) for name, num in numerator_list] # 如果需要整数结果,可替换为整除或类型转换 # my_output = [(name, num // denominator_dict[name]) for name, num in numerator_list] print(my_output)
输出结果
[('Sam', 2.0), ('Alex', 4.0), ('Tom', 4.0)]
如果需要得到整数类型的结果,把除法运算符换成//(整除),或者用int(num / denominator_dict[name])转换即可,最终输出就会是[('Sam', 2), ('Alex', 4), ('Tom', 4)]。
补充说明
- 如果两个列表存在键不匹配的情况(比如某个名字只在其中一个列表里),可以用字典的
get方法避免KeyError,例如:
这里给不存在的键设置默认分母为1,也可以根据需求改成跳过该键、抛出提示等逻辑。my_output = [(name, num / denominator_dict.get(name, 1)) for name, num in numerator_list]
内容的提问来源于stack exchange,提问作者Sherry Yang
相关产品推荐
相关产品推荐

