如何添加表示整数的刮取字符串?

时间:2016-04-22 00:33:00

标签: python python-2.7 python-3.x selenium

我如何将我刮过的所有花车加起来?

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)但是,这将是一个我不知道的随机数量,所以我不能做变量

3 个答案:

答案 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)))
    ...