如何在Python中有效删除单个字母词

电子杂志

我想删除单个字母词,如ai ee gb f fy o l oc 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]:这部分是只是为了好玩:它返回第一元件,如果resultFalse,并且如果第二元件resultTrue(因为False等于0True等于1)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章