簡體   English   中英

如何檢查弦是否由輔音,元音和輔音組成?

[英]How to check if string consist of consonant, vowel and consonant?

可以說我有一個字符串verbs = ["win", "dig", "be", "go", "break]列表,它們是verbs = ["win", "dig", "be", "go", "break]等)。我可以檢查字符串中的字符是否包含輔音-元音-輔音嗎?我有兩個列表:

vowel = ["a", "e", "i", "o", "u"]
consonant = ["b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z"]

這是代碼示例:

for ver in verbs:
    if verb "I DON'T KNOW WHAT TO TYPE HERE":
        verb = verb[:len(verb)] + verb[len(verb) - 1: len(verb)] + "ing"
        - then do sth

我將使用set進行快速的成員資格測試:

import string

vowel = set("aeiou")
consonant = set(string.ascii_lowercase) - vowel   # all letters that are not vowels

然后看看最后3個字母是否在集合中:

if len(verb) > 2 and verb[-3] in consonant and verb[-2] in vowel and verb[-1] in consonant:
    verb += verb[-1] + 'ing'

或使用嚴格的子集測試更加緊湊:

if len(verb) > 2 and {verb[-3], verb[-1]} <= consonant and verb[-2] in vowel:
    verb += verb[-1] + 'ing'

verb += verb[-1] + 'ing'語句使用增強的賦值將最后一個字母加'ing'附加到verb字符串值上。 負索引從序列末尾開始計數,因此-1為您提供字符串中的最后一個字母:

>>> verb[-1]
'k'

演示:

>>> for verb in verbs:
...     if len(verb) > 2 and {verb[-3], verb[-1]} <= consonant and verb[-2] in vowel:
...         verb += verb[-1] + 'ing'
...     else:
...         verb += 'ing'
...     print(verb)
...
winning
digging
being
going
breaking

我會建議使用一些NLP包像NodeBox或NLTK做的,而不是編寫自定義代碼來追加該ing 在某些情況下,您可能會錯過。

這里的一些答案可能會有所幫助:

使用NLTK和WordNet; 如何將簡單的時態動詞轉換為現在,過去或過去分詞形式?

這個庫也非常有用https://www.nodebox.net/code/index.php/Linguistics#verb_conjugation

一個例子:

import en
print en.verb.present_participle("be")

存在

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM