如何在django循环中获取值的总和
How to get sum of values inside django loop
在我的循环中,我正在获取变量中的值我想获得这些值的总和。代码被赋予值
for index in range(len(json_objects)):
getsum = 0
sum = json_objects[index]['fields']['bill']
getsum += float(sum)
print(getsum)
但我只得到除了总和之外的值,任何人都可以帮助我相关的 tihs 吗??
> json_objects[index]['fields']['bill'] i am getting values like 100
> and 200 in a loop i want the sum 300 in getsum variable
我认为这是因为 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 的回答中得到解决 - 但您可能仍然对如何编写正确的 pythonic 代码感兴趣...
第一点:Python 的 for
循环属于 foreach
类型——您直接迭代列表或任何可迭代对象,而不是进行类似 C 的索引访问。 IOW,而不是
lst = ["a", "b", "c"]
for i in range(len(lst)):
print(lst[i])
正确的用法是:
for char in lst:
print(char)
然后 python 有一个内置的 sum()
函数,它接受一个可迭代对象并对它的值求和,以及可用于 transform/filter 一个可迭代对象的生成器表达式。所以你的代码可以减少到一行:
result = sum(float(obj["fields"]["bill"]) for obj in json_object)
附带说明:在运行时没有 "json object" 这样的东西。 JSON 是一种文本格式(IOW 是一个字符串),反序列化一个 json 格式的字符串会产生一个 Python 对象——通常是一个字典或一个字典列表——所以 json_object
可能不是最好的名称 - 这些数据已从某些 json 文本中反序列化这一事实无关紧要。
在我的循环中,我正在获取变量中的值我想获得这些值的总和。代码被赋予值
for index in range(len(json_objects)):
getsum = 0
sum = json_objects[index]['fields']['bill']
getsum += float(sum)
print(getsum)
但我只得到除了总和之外的值,任何人都可以帮助我相关的 tihs 吗??
> json_objects[index]['fields']['bill'] i am getting values like 100 > and 200 in a loop i want the sum 300 in getsum variable
我认为这是因为 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 的回答中得到解决 - 但您可能仍然对如何编写正确的 pythonic 代码感兴趣...
第一点:Python 的 for
循环属于 foreach
类型——您直接迭代列表或任何可迭代对象,而不是进行类似 C 的索引访问。 IOW,而不是
lst = ["a", "b", "c"]
for i in range(len(lst)):
print(lst[i])
正确的用法是:
for char in lst:
print(char)
然后 python 有一个内置的 sum()
函数,它接受一个可迭代对象并对它的值求和,以及可用于 transform/filter 一个可迭代对象的生成器表达式。所以你的代码可以减少到一行:
result = sum(float(obj["fields"]["bill"]) for obj in json_object)
附带说明:在运行时没有 "json object" 这样的东西。 JSON 是一种文本格式(IOW 是一个字符串),反序列化一个 json 格式的字符串会产生一个 Python 对象——通常是一个字典或一个字典列表——所以 json_object
可能不是最好的名称 - 这些数据已从某些 json 文本中反序列化这一事实无关紧要。