python代码该怎么简化_如何简化这个python代码(从书中分配)?

我在学习

"Python for Everybody"

这本书是由查尔斯R.Severance和我写的,从第7章开始,我有一个问题要问练习2。

任务是通过

mbox-short.txt

文件和“当您遇到以__x-dspam-confidence:_157;开头的行时,拉开该行以提取该行上的浮点数。计算这些行,然后从这些行计算垃圾邮件置信度值的总数。当您到达文件结尾时,打印出平均垃圾邮件可信度。“

以下是我完成这项任务的方法:

fname = input('Enter the file name: ')

try:

fhand = open(fname)

except:

print('File cannot be opened:', fname)

exit()

count = 0

values = list()

for line in fhand:

if line.startswith('X-DSPAM-Confidence:'):

string = line

count = count + 1

colpos = string.find(":")

portion = string[colpos+1:]

portion = float(portion)

values.append(portion)

print('Average spam confidence:', sum(values)/count)

我知道这段代码是有效的,因为我得到了和书中相同的结果,但是,我认为这段代码可以更简单。我之所以这么认为是因为我在代码中使用了一个列表(声明它,然后在其中存储值)。然而,“列表”是书中的下一个主题,在解决这个任务时,我对列表一无所知,不得不谷歌搜索它们。我以这种方式解决了这个任务,因为这是我在R语言中要做的(我已经很熟悉了),所以我将创建一个向量,在其中存储迭代中的值。

所以我的问题是:这个代码可以简化吗?我可以在不使用列表的情况下完成相同的任务吗?如果是,我怎么做?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值