我需要检查单词中是否存在元音。如果是这样,应对“说”一词进行操作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是最好的吗?”这样的字符串,请检查它是否包含数组中的内容。这可能吗?