印刷 。在字符串中的每个字符之前

时间:2021-06-18 11:11:17

标签: python string

我有一个字符串,它是 "java is fun for sure",我想打印

  1. 删除每个元音字母(aeiou)
  2. 打印一个“.”在每个字符之前

所以结果会像 ".j.v. .s. .f.n. .f.r. .s.r"

我已经试过了

s = str(input())
s.translate({ord(i): None for i in 'aeiou '})

结果是 "jvsfnfrsr" 但我不知道如何打印“.”在字母之前。 一些帮助会很棒!我确定这是一个非常简单的问题,但由于某种原因我无法想出它!

提前谢谢! :)

3 个答案:

答案 0 :(得分:1)

这个呢?它也保留了大写字母。

vowels = 'aeiouAEIOU'
tmp = ''.join([char for char in str1 if char not in vowels])
final = ''.join(['.'+char for char in tmp])

答案 1 :(得分:1)

您可以使用 maketrans 的 3 参数版本来创建所需的翻译词典。使用 the sep param of print(..) 放置 .:

s  = "java is fun for sure"
s1 = s.translate(str.maketrans("", "", "aeiou")) # AEIOU are kept as is
print("", *s.translate(str.maketrans("", "", "aeiou")), sep=".")

或简而言之:

print("",*"java is fun for sure".translate(str.maketrans("", "", "aeiou")),sep=".")

string-var 之前的 * 将字符串分解为字母:

print(*"abc", sep = "#") # == print("a","b","c", sep = "#")

输出:

.j.v. .s. .f.n. .f.r. .s.r

如果你需要结果字符串,你可以使用 str.join():

s2 = '.' + '.'.join(s1)

答案 2 :(得分:1)

import re

s = str(input())
s = s.translate({ord(i): None for i in 'aeiouAEIOU'})
print(re.sub('([^\s])', r'.\1', s))

输入:"java is fun for sure"

输出:".j.v .s .f.n .f.r .s.r"

使用正则表达式的解决方案

相关问题