我正在编写一个代码,从外部文件中获取歌曲名称和艺术家,并打印歌曲名称中每个单词的第一个字母,然后打印艺术家的名字。我已经完成了代码的这个元素,现在我正在尝试创建代码的一部分,当用户第一次尝试时猜错了歌曲名称,我的程序会打印代码中每个单词的最后一个字母标题也是如此。我想出的代码(将在下面打印)效果很好,除非其中一个单词只有一个字母长,因为它会打印该字母两次,因为它既是第一个字母又是最后一个字母。
这是我的代码,适用于除一个字母单词之外的所有内容:
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
如果有人能给我一些关于如何实现这一目标的建议,我将不胜感激
最佳答案
您可以先验证单词的长度:
print(' '.join(x[0] + '_' * (len(x) - 2) + (x[-1] if len(x) > 1 else '') for x in song_title.split()))
关于python - 打印每个单词的第一个和最后一个字母的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59414595/