在这种特殊情况下,哪种内置函数应该首先出现?

时间:2015-11-30 11:49:04

标签: python built-in-types

在该计划的这个特定部分,我无法理解为什么.startswith功能不是第一个使用的功能:

for line in fhand:
    line = line.rstrip()
    if not line.startswith('From ') : continue
    words = line.split()
    print words[2]

我的意思是,它不会比开始时剥离每一行更快吗?为什么或者为什么不?

1 个答案:

答案 0 :(得分:1)

这不是第一个,因为你的行可能以空格结尾。请考虑以下字符串:

"From somebody"
"From "

您在上面发布的版本会删除尾随空格,分别留下"From somebody""From"。对于第二个字符串,startswith现在返回False而不是True作为具有交换函数的版本。

我想这是某种形式的验证,即在"From "部分之后存在实际内容,与空白相比,它不会被剥夺。