我有这个带有2个参数(string,dictionary)并返回float的python函数。该函数旨在获取分数和字符串的整数中的平均值。

def happiness_score(string, dic):
   keys = string.lower().split()
   v = sum(dic[key] for key in keys)
   return float(v)/len(keys)


我有这个有效的测试用例:

print happiness_score("a b" , {"a":(1.2) , "b":(3.4)})
>>> 2.3


我也有一个元组的测试用例:

print happiness_score("a b" , {"a":(1,2) , "b":(3,4)})


如何更改代码,以便可以将任何给定的元组转换为整数,以便仍然可以运行程序?

最佳答案

尝试使用我的忍者头脑阅读技巧来猜测您如何将元组转换为浮点数,也许您想要:

def tup2float(tup):
    return float('.'.join(str(x) for x in tup))


这仅适用于2元组...

一些结果:

>>> tup2float((1,2))
1.2
>>> tup2float((2,3))
2.3
>>> tup2float((2,30))
2.3
>>> tup2float((2,32))
2.32

09-27 01:54