Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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 如何获取django循环中的值之和_Python_Django_Django Admin - Fatal编程技术网

Python 如何获取django循环中的值之和

Python 如何获取django循环中的值之和,python,django,django-admin,Python,Django,Django Admin,在我的循环中,我得到一个变量中的值,我想得到这些值的总和 for index in range(len(json_objects)): getsum = 0 sum = json_objects[index]['fields']['bill'] getsum += float(sum) print(getsum) 但我得到的是除了和之外的唯一值。有谁能帮我相关的提示吗 我认为这是因为getsum是在循环中定义的,所以每次迭代时它都被重置为0。将其移到循环之外,看看这是否有帮助: get_su

在我的循环中,我得到一个变量中的值,我想得到这些值的总和

for index in range(len(json_objects)):
getsum = 0
sum = json_objects[index]['fields']['bill']
getsum += float(sum) 
print(getsum)
但我得到的是除了和之外的唯一值。有谁能帮我相关的提示吗


我认为这是因为
getsum
是在循环中定义的,所以每次迭代时它都被重置为0。将其移到循环之外,看看这是否有帮助:

get_sum = 0
for index in range(len(json_objects)):
    sum = json_objects[index]['fields']['bill']
    get_sum += float(sum)

print(get_sum)

根本问题已经在评论和RHSmith159的回答中得到了解决-但是您可能仍然对如何编写正确的Python代码感兴趣

第一点:Python的
for
循环属于
foreach
类型——您可以直接迭代列表或任何iterable,而不是执行类似C的索引访问。看,而不是

lst = ["a", "b", "c"]
for i in range(len(lst)):
    print(lst[i])
正确的使用方法是:

for char in lst:
    print(char)
然后python有一个内置的
sum()
函数,它接受一个iterable并对它的值进行求和,还有一个生成器表达式,可以用来转换/过滤iterable。因此,您的代码可以简化为一行:

result = sum(float(obj["fields"]["bill"]) for obj in json_object)

附带说明:在运行时没有“json对象”这样的东西。JSON是一种文本格式(使用字符串),对JSON格式的字符串进行非序列化会生成一个Python对象,通常是一个dict或dict列表,因此,
json\u object
可能不是最好的名称-这些数据已从某些json文本中取消序列化的事实无关紧要。

您在循环中定义了
getsum
,将其移动到
for
语句上方。在每次迭代中将
getsum
设置为零,将行
getsum=0
放在循环之前
result = sum(float(obj["fields"]["bill"]) for obj in json_object)