Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 尝试对字典中的键值对求和_Python_Python 3.x - Fatal编程技术网

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。