import itertools
def pairwise(iterable):
"s -> (s0,s1), (s1,s2), (s2, s3), ..."
a, b = itertools.tee(iterable)
next(b, None)
return zip(a, b)
def insert_sv_present(s):
lvowel = ['a', 'e', 'i', 'o', 'u']
for pair in pairwise(s):
if pair[0].lower() in lvowel and pair[1].lower() in lvowel:
return True
return False
def insert_sv_present(s):
lvowel = ['a', 'e', 'i', 'o', 'u']
for pair in pairwise(s):
if all(ch.lower() in lvowel for ch in pair):
return True
return False
假设
ch
是一个字符串而不是一个字符,则只有当其大小为1
时,您的检查才会起作用。。。您需要实际循环字符串以查找两个连续字符由于问题要求两个连续的元音,我们可以使用^{} recipe 来循环字符串
pairwise
:然后可以使用内置的^{} 函数对其进行稍微的澄清和概括:
甚至可以使用内置的^{} 函数进一步减少,但该步骤可能会违反可读性:
你必须循环遍历字符串中的字符,并计算有多少元音紧跟其后。如果count为2,则两个元音是连续的
正如@S3DEV所建议的,代码将更干净,如:
这是唯一的班轮 希望对你有帮助
已编辑 @Tomerikoo提出了一些优化建议
相关问题 更多 >
编程相关推荐