我如何将我刮过的所有花车加起来?
for post in posts:
numberOfItems = numberOfItems + 1
print(numberOfItems)
value = float(re.sub(r"[^\d.]", "", post.text))
print("Chaos orbs: %s" % value)
print(value)
像这样,打印(value1 + value2 + value3)但是,这将是一个我不知道的随机数量,所以我不能做变量
答案 0 :(得分:3)
使用sum()
:
for post in posts:
... # rest of code snippet you posted
print(sum(float(re.sub(r"[^\d.]", "", post.text)) for post in posts))
在for循环之外的将累加所有值并打印出总和。
或者,如果你想以某种方式使用现有的for循环以避免迭代两次,那么:
summed_values = 0
for post in post:
... # rest of code snippet you posted
summed_values += value
答案 1 :(得分:1)
你想实现这个目标吗?
post="1.0 2.0 3.0\n 1.5 2.3"
print sum(map(float,post.split()))
答案 2 :(得分:1)
目前尚不清楚你在抓什么,但这应该提取数值:
import re
s = "abc 12.25 def 20 df20.5 $10,000.50"
>>> re.findall(r"([\d.?]+)", re.sub(",", "", s))
['12.25', '20', '20.5', '10000.50']
此正则表达式从字符串中删除逗号,并将结果传递给另一个正则表达式,该正则表达式找到所有可能有或没有小数点(\d
)的数字(.?
)。
整数字符串列表可以很容易地求和:
>>> sum(float(n) for n in re.findall(r"([\d.?]+)", re.sub(",", "", s)))
10053.25
然后你在外环中总计:
total_sum = 0
for post in posts:
...
total_sum += sum(float(n) for n in re.findall(r"([\d.?]+)", re.sub(",", "", s)))
...