我正在编写一个代码,该代码从外部文件中获取歌曲名称和艺术家,并打印歌曲名称中每个单词的第一个字母,然后打印艺术家的名称。我已经完成了代码的这一部分,现在我尝试创建代码的一部分,当用户第一次尝试对歌曲名称的猜测有误时,我的程序将打印出每个单词的最后一个字母标题。我想出的代码可以很好地打印在下面,除非其中一个单词长一个字母,因为它会将第一个和最后一个字母都打印两次,所以效果很好。
这是我所使用的代码,除了一个字母单词外,它适用于所有内容:
print(' '.join(x[0] + '_' * (len(x) - 2) + x[-1] for x in song_title.split()))
例如:
input = Axel F
output = A__l FF
desired output = A__l F
如果有人可以给我一些有关如何实现这一目标的建议,将不胜感激
答案 0 :(得分:3)
您可以先验证单词的长度:
print(' '.join(x[0] + '_' * (len(x) - 2) + (x[-1] if len(x) > 1 else '') for x in song_title.split()))