在python中,不能删除句号'.'

试图弄清楚如何从我的输出中删除句点。作业的正确答案是:WA。EA。人工智能。应收账款。VI 我的输出是:WA。EA。人工智能。应收账款。六、


我试过使用 rstrip 删除 . 从输出,但这不起作用。


感谢这位新手 Python 程序员的一些见解。


stopwords = ['to', 'a', 'for', 'by', 'an', 'am', 'the', 

'so', 'it', 'and', 'The']

sent = "The water earth and air are vital"

s_sent=sent.split()

acro = ''

for word in s_sent:

    if word not in stopwords:

       acro=acro + str.upper(word[:2])+". "            

       acro=acro.rstrip('.')

print(acro)


慕虎7371278
浏览 199回答 3
3回答

波斯汪

您join可以免于处理剩余空间的麻烦和 '.'stopwords = ['to', 'a', 'for', 'by', 'an', 'am', 'the', 'so', 'it', 'and', 'The']sent = "The water earth and air are vital"s_sent=sent.split()acro = []for word in s_sent:    if word not in stopwords:       acro.append( str.upper(word[:2]))print('. '.join(acro))输出WA. EA. AI. AR. VI另一种简单的方法是引入一个标志来检查第一个值,然后巧妙地附加'. '在最后一个值的末尾。这样你就不会有多余的尾随字符smart_flag = Trueacro = ''for word in s_sent:    if word not in stopwords:        if smart_flag:            acro=acro+str.upper(word[:2])            smart_flag=False        else:            acro=acro +". " + str.upper(word[:2])           print(acro)只是为了完整性acro.rstrip(' .'))将删除您传入的任何字符。我的意思是它将删除'. '以及' .'

拉风的咖菲猫

这也可以缩短为:stopwords = ['to', 'a', 'for', 'by', 'an', 'am', 'the', 'so', 'it', 'and', 'The']sent = "The water earth and air are vital"acro = '. '.join(word[:2].upper() for word in sent.split() if word not in stopwords)print(acro)输出:WA. EA. AI. AR. VI更新:但是,正如@mad_ 指出的那样,join在这种情况下想要创建一个字符串,首先是正确的长度,然后是正确的内容。但是要知道正确的长度,它希望找到要连接的所有组件的长度,因此将列表作为其参数意味着它具有大小,而我对生成器的原始答案直到它已经用尽了。所以,更好的是:acro = '. '.join([word[:2].upper() for word in sent.split() if word not in stopwords])

慕村225694

这是因为您输入的最后一个字符acro是空格字符。你必须要么rstrip(". ")或rstrip(" .")。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python