当前位置: 首页 > 面试题库 >

检查字符串中是否存在元音

钱青青
2023-03-14
问题内容

我需要检查单词中是否存在元音。如果是这样,应对“说”一词进行操作op(word)。我想避免for循环,因为我想到了这一点:

for char in word:
    if char in 'aeiou':
#confused here...

请推荐一种执行时间成本较低的方法。另外,也请帮助我纠正上述方法。


问题答案:

vowels = {“a”, “e”, “i”, “o”, “u”, “A”, “E”, “I”, “O”, “U”}
if any(char in vowels for char in word):


注意: 这样比较好,因为它会在单词中找到元音后立即短路。因此,除非字符串中没有元音,否则不必检查所有字符。

编辑:运行
了一个timeit测试,发现@falsetru的答案非常快,但是经过很少的优化,该re版本胜过其他所有功能。

使用set.isdisjoint(此方法找到匹配项后立即返回):

>>> vowels = set('aeiou') # set('aeiouAEIOU') if you want case-insensitivty
>>> not vowels.isdisjoint('bcd')
False
>>> not vowels.isdisjoint('hello')
True
import re

vowels = {"a", "e", "i", "o", "u", "A", "E", "I", "O", "U"}
pattern = re.compile("[AEIOUaeiou]")

def intersection():
    return bool(vowels.intersection("TWYNDYLLYNGS"))

def any_version():
    return any(char in vowels for char in "TWYNDYLLYNGS")

def re_version():
    return bool(pattern.search("TWYNDYLLYNGS"))

def disjoint():
    return vowels.isdisjoint("TWYNDYLLYNGS")

from timeit import timeit

print timeit("intersection()", "from __main__ import intersection, vowels")
print timeit("any_version()", "from __main__ import any_version, vowels")
print timeit("re_version()", "from __main__ import re_version, vowels")
print timeit("disjoint()", "from __main__ import disjoint, vowels")


 类似资料:
  • 如果两个英语单词只包含相同的字母,则它们是相似的。例如,食物和好东西并不相似,但狗和好东西是相似的。(如果A与B相似,则A中的所有字母都包含在B中,B中的所有字母都包含在A中。) 给定一个单词W和一个单词L列表,查找L中与W相似的所有单词。将字数打印到标准输出。 例子: 输入(标准输入): 输出(标准输出): 说明: L中与love相似的词是:velo vole love volvell love

  • 问题内容: 如何检查是否是那里的? 我想分配给是否有结果,否则。 我当前的代码是: 问题答案:

  • 问题内容: 我之前已经找到了这个问题的一些答案,但是对于当前的Python版本似乎已经过时了(或者至少它们对我不起作用)。 我想检查子字符串是否包含在字符串列表中。我只需要布尔结果。 我找到了这个解决方案: 我希望从这段代码中得到一个价值。如果单词是“ der”,则输出应为。 但是,结果是一个生成器函数,我找不到找到该值的方法。 任何想法? 问题答案: 您可以导入从的情况下,它是由一些其他的替代:

  • 问题内容: 我正在使用Python v2,并且试图找出是否可以判断字符串中是否包含单词。 我发现了一些有关识别单词是否在字符串中的信息-使用.find,但是有一种方法可以执行IF语句。我想要以下内容: 谢谢你的帮助。 问题答案: 出什么问题了:

  • 问题内容: 如何检查数组中的任何字符串是否在另一个字符串中? 喜欢: 该代码行不通,只是为了展示我想要实现的目标。 问题答案: 你可以使用: 同样,要检查是否找到了列表中的所有字符串,请使用all代替any。

  • 编辑:如何让js检查字符串是否包含数组的任何字符串,如var arrayVar=[“bing”,“google”];如果像“google是最好的吗?”这样的字符串,请检查它是否包含数组中的内容。这可能吗?