在每个字母前附加点

时间:2018-05-06 08:29:11

标签: python

我想在每封信之前添加一个点。 不幸的是,重点是在每封信之后。如何在每个字母前插入点?

myText = str(input())
vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']
result = ''
for letter in myText:
    if letter not in vowels:
        result = result + letter
        for i in result:
            result = result + '.'
            break

print(result.lower())

5 个答案:

答案 0 :(得分:1)

依赖regular expressions的力量的更短,更快的解决方案:

import re
my_text = "sample"
re.sub(r"[aeiou]*([^aeiou])[aeiou]*", r".\1", my_text.lower())

这样写着:“删除元音,并用点加上每个剩余字母的前缀”。

答案 1 :(得分:0)

删除所有元音并附加"。"在每封信之前。

myText = "sample"
vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']
result = ''
for letter in myText:
    if letter not in vowels:
        result = result + '.' + letter

print(result.lower())
# .s.m.p.l

答案 2 :(得分:0)

菲安的答案可能是最好的答案。这是我的尝试:

text = 'audfijsdfmsomlasn'
vowels = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'}

result = ''

for letter in text:
    if letter in vowels:
        result += '.'
    result += letter

print(result)

答案 3 :(得分:0)

另一种方式:

import re
myText = "sample"
result = '.' + '.'.join(list(re.sub('[aeiou]', "", myText, flags=re.I)))
print(result)

说明:

  • re.sub删除不需要的字母(不区分大小写= re.I
  • list使字符串成为字符数组
  • join
  • 之间放置一个点
  • '.' +在第一个字符
  • 前添加缺失的点

答案 4 :(得分:0)

string = input()
vowels = ['a', 'A', 'i', 'I', 'o', 'O', 'u', 'U', 'e', 'E']
translation = string.maketrans({i: '' for i in vowels})
string = string.translate(translation)
result = ''
for letter in string:
    result = result + '.' + letter
print(result.lower())