簡體   English   中英

帶有文本正則表達式的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM