如何通过在空格处拆分字符串、将索引为0的字符合并并大写来创建首字母缩略词?

2024-05-18 19:34:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码

beginning = input("What would you like to acronymize? : ")

second = beginning.upper()

third = second.split()

fourth = "".join(third[0])

print(fourth)

我好像弄不清我错过了什么。代码应该是用户输入的短语,全部大写,拆分成单词,将每个单词的第一个字符连接在一起,然后打印出来。我觉得某个地方应该有一个循环,但我不完全确定这个循环是对的还是放在哪里。


Tags: to代码youinput单词upperwhatlike
3条回答

对我来说是这样的:

>>> a = "What would you like to acronymize?"
>>> a.split()
['What', 'would', 'you', 'like', 'to', 'acronymize?']
>>> ''.join([i[0] for i in a.split()]).upper()
'WWYLTA'
>>> 

当您运行代码third[0]时,Python将为变量third编制索引并给出它的第一部分。

.split()的结果是字符串列表。因此,third[0]是一个字符串,第一个单词(全部大写)。

你需要某种循环来得到每个单词的第一个字母,否则你可以用正则表达式来做一些事情。我建议循环。

试试这个:

fourth = "".join(word[0] for word in third)

在对.join()的调用中有一个小的for循环。Python称之为“生成器表达式”。变量word将依次设置为third中的每个单词,然后word[0]将获得所需的字符。

说输入是“联邦机构局”

键入third[0]将得到split的第一个元素,即“Federal”。您需要精灵中每个元素的第一个元素。使用生成器理解或列表理解将[0]应用于列表中的每个项:

val = input("What would you like to acronymize? ")
print("".join(word[0] for word in val.upper().split()))

在Python中,在这里使用显式循环是不习惯的。生成器理解更短,更易于阅读,不需要使用显式累加器变量。

相关问题 更多 >

    热门问题