如何制作任何文字首字母的快捷方式?

时间:2019-04-06 08:28:17

标签: python string uppercase

我需要编写一个函数来返回任何文本的首字母(并使其大写):

shortened = shorten("Don't repeat yourself")
print(shortened)

预期输出:

DRY

和:

shortened = shorten("All terrain armoured transport")
print(shortened)

预期输出:

ATAT

3 个答案:

答案 0 :(得分:0)

使用列表理解并加入

shortened = "".join([x[0] for x in text.title().split(' ') if x])

答案 1 :(得分:-1)

使用正则表达式,您可以匹配每个单词的第一个字母以外的所有字符,将它们替换为空字符串以将其删除,然后将结果字符串大写:

import re

def shorten(sentence):
    return re.sub(r"\B[\S]+\s*","",sentence).upper()

print(shorten("Don't repeat yourself"))

输出:

DRY

答案 2 :(得分:-1)

text = 'this is a test'
output = ''.join(char[0] for char in text.title().split(' '))
print(output)
  

TIAT

让我解释一下它是如何工作的。

我的第一步是将每部作品的首字母大写

text.title()

现在我希望能够将每个单词之间用空格分开,这将成为一个列表

text.title()split(' ')

这样我就以'This','Is','A','Test'结尾,所以现在我显然只想要列表中每个单词的第一个字符

对于text.title()split('')中的单词:     print(word [0])#T I A T

现在我可以将所有内容都整合到所谓的列表理解中

output = [char[0] for char in text.title().split(' ')]
# ['T','I','A','T']

我可以使用''.join()来将它们组合在一起,我不再需要[]括号,因为它不需要是列表

output = ''.join(char[0] for char in text.title().split(' ')