【发布时间】:2014-10-27 07:50:37
【问题描述】:
我知道在字符串中查找最长的单词已被多次询问和回答,但我想知道以下方法之间的区别,以及为什么人们会使用方法 A 而不是方法 B,反之亦然。
方法 A
def LongestWord(sen):
lw = ''
w = ''
for c in sen:
if c.isalpha():
w += c
else:
if len(w) > len(lw):
lw = w
w = ''
if len(w) > len(lw):
lw = w
return lw
VS 方法 B
def LongestWord(sen):
x = max(sen.split(), key=len)
return x
再次,我的目标是询问哪种方法会更稳定,因为缺少更好的词选择,以及为什么。如果您有自己的选择,请将其与您的解释一起发布。谢谢!
【问题讨论】:
-
方法 A 使用了糟糕的变量名并且难以理解。方法 B 相当明显,利用了众所周知的内置函数。 A 在字符串上重复使用
+=,这是低效的,并且可能调用len()也超出必要。不过,在他们做同样的事情之前,这并不重要,但他们没有。 A 在其单词中不包含标点符号(例如,“you're”是一个非常好的词),B 包含所有标点符号(例如,句点通常不包含在单词长度中)。 -
代码越少越好,除非难以理解。因为
B很容易理解,而A不那么容易理解……但是minitech 对标点符号的处理是正确的。 -
不要犹豫,使用更长的变量名。你不会浪费任何墨水:)
-
请注意,Python 函数中的约定应以小写开头
-
@minitech,谢谢,非常彻底。 Precisley 我正在寻找的东西。另外,感谢您的提示!
标签: python string function string-length