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

问题描述 投票:-4回答:3

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

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

预期产量:

DRY

和:

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

预期产量:

ATAT
python string uppercase
3个回答
0
投票

使用列表理解和加入

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

-1
投票

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

import re

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

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

输出:

DRY

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

意向

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

我的第一步是将每件作品的第一个字母大写

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(' ')
© www.soinside.com 2019 - 2024. All rights reserved.