![](/img/trans.png)
[英]Line continuation for list comprehensions or generator expressions in python
[英]Python list comprehensions with regular expressions on a text
我有一個文本文件,文本中包含整數。 一行中有一個或多個整數,或者沒有。 我想用正則表達式找到這些整數並計算總和。
我設法編寫了代碼:
import re
doc = raw_input("File Name:")
text = open(doc)
lst = list()
total = 0
for line in text:
nums = re.findall("[0-9]+", line)
if len(nums) == 0:
continue
for num in nums:
num = int(num)
total += num
print total
但是我也想知道列表理解版本,有人可以幫忙嗎?
由於要在找到數字后求和,因此最好在sum()
使用帶有re.finditer()
的生成器表達式。 另外,如果文件的大小不是很大,則最好一次讀取,而不要一次讀取一行。
import re
doc = raw_input("File Name:")
with open(doc) as f:
text = f.read()
total = sum(int(g.group(0)) for g in re.finditer(r'\d+', text))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.