我想删除单个字母词,如a
,i e
,e g
,b f f
,y o l o
,c y l
使用Python函数。
我当前的代码如下。
def remove_single_letters(concept):
mystring = "valid"
if len(concept) == 1:
mystring = "invalid"
if len(concept)>1:
validation = []
splits = concept.split()
for item in splits:
if len(item) > 1:
validation.append("valid")
if len(validation) != 1:
mystring = "invalid"
return mystring
print(remove_single_letters("b f f"))
它工作正常。但是,我想知道是否有更有效的方法(用更少的时间)在python中完成。
这是单行解决方案:
def remove_single_letters(concept):
return ["valid", "invalid"][concept.count(" ") >= len(concept) // 2]
更新:请注意,它虽然较短且很酷,但不一定运行得更快。
说明:
concept.count(" ")
:返回字符串中的空格数>= len(concept) // 2
:如果字符串的一半以上是空格,则返回True(当合法单词之间有多个空格时,如@ user202729所述,它将失败)["valid", "invalid"][result]
:这部分是只是为了好玩:它返回第一元件,如果result
是False
,并且如果第二元件result
是True
(因为False
等于0
和True
等于1
)。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句