2014-11-04 88 views
-3

我需要测试一个单词是否仅包含某些音节。例如,如果一个单词“pikakapichu”只包含音节,“pi”,“ka”或“chu”,我想返回“是”。如果它包含其他音节或字符,那么我想返回“否”。测试一个单词是否仅包含指定的音节

又如:

字= “pikapikachudo”

返回: “否”,因为它具有比 'PI', 'か' 等一个音节,和 '楚'

+4

你如何决定哪些字母是哪个音节的一部分? “pik,ach,u”会不会有效? – Kevin 2014-11-04 17:09:49

+1

嗨安德烈,欢迎来到stackoverflow。请阅读http://stackoverflow.com/help/on-topic,以便您的问题将在主题上。 并且请更新关于“你已经尝试了什么”的问题,即使它只是一个伪代码。 – Crazenezz 2014-11-04 17:11:52

回答

0

尝试将syllables存储在列表中,然后遍历该列表并用空字符串替换列表中的每个项目。

  • 例如:取pi并用l中的空字符串替换pi'。输出应该 “pikapikachudo - >kakachudo

相同的过程中对其他项目

。” pikapikachudo - >kakachudo - >do

最后,我们测试是否l为空或没有。如果它是空的,这意味着这些都是字l

l= "pikapikachudo" 

r= [ 'pi', 'ka','chu'] 


def isOnlysyllables_in_word(l,r): 
    for x in r: 
     l= l.replace(x, '') 
    print "You still have <",l,"> in word" 
    return l=='' 

print isOnlysyllables_in_word(l,r) #return False 
1

你似乎是描述一个地方音韵每个音节是开放和细胞核元音总是由辅音集群之前唯一sylabules。 (有一些补充,我希望是不重要的位置,日本与此结构的语言。)因此,你可以使用正则表达式像

[bcdfghj-np-tvwxz]+[aeiou] 

描述每个音节。

+0

我正在考虑一个蛮力'len(re.sub('pi | ka | chu','','pikakapichu'))''但你的回答很酷。 – tdelaney 2014-11-04 17:35:54

相关问题