![](/img/trans.png)
[英]rearrange random string to consonant vowel consonant vowel order in python
[英]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.