Python 尝试对字典中的键值对求和
我一直在努力理解如何从字典中的键值对求和 打印字典会产生以下类似结果:Python 尝试对字典中的键值对求和,python,python-3.x,Python,Python 3.x,我一直在努力理解如何从字典中的键值对求和 打印字典会产生以下类似结果: print(cust.p) {datetime.datetime(2018, 2, 8, 0, 0): '18.70', datetime.datetime(2018, 2, 12, 0, 0): '8.63', datetime.datetime(2018, 2, 6, 0, 0): '37.61'} 我试图通过使用self.cust.p.keys()一次传递每个键来添加冒号后面的值 def添加(自): 返回和(self
print(cust.p)
{datetime.datetime(2018, 2, 8, 0, 0): '18.70', datetime.datetime(2018, 2, 12, 0, 0): '8.63', datetime.datetime(2018, 2, 6, 0, 0): '37.61'}
我试图通过使用self.cust.p.keys()一次传递每个键来添加冒号后面的值
def添加(自):
返回和(self.p[self.p.values()]
我正在寻找一个将18.70、8.63和37.61相加的结果,这样当我调用该函数时,它将返回64.94。我还尝试使用for循环和values(),但没有效果
谢谢您的时间。您可以将dict值转换为整数,然后再将其传递给
sum
函数:
def add_p(self):
return sum(map(int, self.p.values()))
只要self.p.values()
就足够了。因为值当前是字符串,所以应该将它们转换为数字类型。在这种情况下,float
最合适
def add_p(self):
return sum(float(x) for x in self.p.values())
您将值存储为字符串,这会导致
sum
函数抛出错误
相反,如果字典值在存储之前从字符串转换为浮点值(由于小数),代码将正常工作
要将字符串转换为浮点,请使用map
函数并将结果传递给sum
函数
import datetime
keyval = {datetime.datetime(2018, 2, 8, 0, 0): '18.70',
datetime.datetime(2018, 2, 12, 0, 0): '8.63',
datetime.datetime(2018, 2, 6, 0, 0): '37.61'}
# map(float, keyval.values()) will convert all values to float
# sum will yield the total having sum all float values
sum(map(float, keyval.values()))
我相信您只需要
sum(self.p.values())
,但我们需要您向我们展示整个课程,以确保。这些值是str
ing。