我需要编写一个函数来返回任何文本的首字母(并使其大写):
shortened = shorten("Don't repeat yourself")
print(shortened)
预期输出:
DRY
和:
shortened = shorten("All terrain armoured transport")
print(shortened)
预期输出:
ATAT
答案 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(' ')