一般来说,你可以很容易地做这样的事情......
import re
def sum_nums_in_text_by_indices(text, indices=slice(0,1)):
return sum(int(n[indices]) for n in re.findall('\d+', text))
例子:
>>> sum_nums_in_text_by_indices('123 123') # first digits
2
>>> sum_nums_in_text_by_indices('123 123', slice(1,2)) # second digits
4
>>> sum_nums_in_text_by_indices('123 123', slice(0,2)) # first and second digits
24
为了使用这个正确的,你应该熟悉Pythons Slice Notation。 (资料:slice())
的功能可以进一步简化:
def sum_nums_in_text_by_indices(text, start=0, stop=1):
return sum(int(n[start:stop]) for n in re.findall('\d+', text))
>>> sum_nums_in_text_by_indices('123 123')
2
>>> sum_nums_in_text_by_indices('123 123', start=1, stop=2)
4
>>> sum_nums_in_text_by_indices('123 123', start=0, stop=2)
24
这将有助于给出一个示例输入和输出 – KevinOrr
以及“Python”代码示例。你尝试过正则表达式吗? –
说实话,我所做的就是将上面的代码放入我的OS X终端并让它运行。我不是一个计算机的人,但需要这个为我的论文做一些测试。你能帮忙吗? –