【发布时间】:2020-08-19 07:12:39
【问题描述】:
我正在尝试将 Python 字符串从其原始形式转换为其元音/辅音组合。
例如 - 'Dog' 变成 'cvc' 而 'Bike' 变成 'cvcv'
在 R 中,我能够使用以下方法:
con_vowel <- gsub("[aeiouAEIOU]","V",df$col_name)
con_vowel <- gsub("[^V]","C",con_vowel)
df[["composition"]] <- con_vowel
这将评估字符是否为元音,如果为真,则分配字符“V”,然后评估该字符串并将不是“V”的任何内容替换为“C”,然后将结果放入名为“数据框中的组合'。
在 Python 中,我在尝试中编写了一些代码来复制功能,但它没有返回所需的结果。请看下文。
word = 'yoyo'
for i in word.lower():
if i in "aeiou":
word = i.replace(i ,'v')
else: word = i.replace(i ,'c')
print(word)
这里的理论是每个字符都会被评估,如果它不是元音,那么通过演绎它必须是辅音。 但是我得到的结果是:
v
我明白为什么会这样,但我不清楚如何达到我想要的结果。
请注意,我还需要将生成的代码应用于数据框列并根据这些结果创建一个新列。
如果你能解释你的答案的工作原理,那将对我有很大帮助。
提前致谢。
【问题讨论】:
-
尝试创建一个新字符串而不是更改原始字符串。
-
作为一名语言学家,看到这个辅音和元音的定义让我心痛。 :^)
-
对于句子或任何带有非标准字符的单词也有问题:
"I'm an X-ray!'按照这种逻辑将太多东西归类为“辅音”。 -
绝对!那么数字和特殊字符呢?许多答案只是将它们视为辅音......
-
完全理解意外字符的观察结果,但不适用,因为字符串只会包含拉丁字母字符。
标签: python string pandas function jupyter-notebook