python - 仅从输出中删除尾随空格

标签 python replace removing-whitespace

我有一项分配给我的家庭作业任务。基本上问题是:

编写一个程序,可以去掉品牌名称并用通用名称替换它们。

下表显示了一些具有通用名称的品牌名称。该映射也已在您的程序中作为 BRANDS 字典提供给您。

BRANDS = {
  'Velcro': 'hook and loop fastener',
  'Kleenex': 'tissues',
  'Hoover': 'vacuum',
  'Bandaid': 'sticking plaster',
  'Thermos': 'vacuum flask',
  'Dumpster': 'garbage bin',
  'Rollerblade': 'inline skate',
  'Asprin': 'acetylsalicylic acid'
}

这是我的代码:

sentence = input('Sentence: ')

sentencelist = sentence.split()
for c in sentencelist:
  if c in BRANDS:
    d = c.replace(c, BRANDS[c])
    print(d, end=' ')
  else:
    print(c, end=' ')

我的输出:

Sentence: I bought some Velcro shoes.
I bought some hook and loop fastener shoes.  

预期输出:

Sentence: I bought some Velcro shoes.
I bought some hook and loop fastener shoes.

它看起来是一样的,但在我的输出中,在'shoes.'后面有一个额外的空格,而实际上不应该有空格。那么如何删除这个空白呢?

我知道你可以做 rstrip()replace() 并且我尝试过,但是当我只需要删除尾随空格时,它只会将所有内容混在一起并且不删除任何其他空格。如果用户将品牌名称放在句子中间,并且我使用了 rstrip(),它会将品牌名称和句子的其余部分连接在一起。

最佳答案

关键是使用字符串的 join 方法来连接所有内容。例如,要在一堆字符串之间放置一个空格,而不在最后一位之后放置空格,请执行

' '.join(bunch_of_strings)

字符串必须位于可迭代对象中,例如列表,才能正常工作。您可以像这样制作列表:

edited_list = []
for word in sentence_list:
    if word in BRANDS:
        edited_list.append(BRANDS[word])
    else:
        edited_list.append(word)

更短的替代方案是

edited_list = [BRANDS.get(word, word) for word in sentence_list]

无论哪种方式,您都可以使用 join 方法组合编辑后的句子:

print(' '.join(edited_list))

这是 Python,您可以将整个事情作为一行完成,而根本不使用中间列表:

print(' '.join(BRANDS.get(word, word) for word in sentence_list))

最后,您可以使用 splat 表示法在 print 本身中进行连接。在这里,您可以将列表中的每个元素作为单独的参数传递,并使用默认的 sep 参数插入空格:

print(*edited_list)

顺便说一句,d = c.replace(c, BRANDS[c]) 完全等同于 d = BRANDS[c],毫无意义。由于字符串是不可变的,因此任何时候执行 c.replace(c, ...) 时,您都只是以一种难以辨认的方式返回替换项。

关于python - 仅从输出中删除尾随空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51941949/

相关文章:

url - 在 PMWIKI 中更改 URL 格式

bash - 如何删除 bash 中的多余空格?

html - 导致外部滚动条的空间来自哪里?

Python - 如何从列表中删除特定单词?

postgresql - 替换 PostgreSQL 中的 unicode 字符

c++ - 如何在 C++ 中使用正则表达式换行后不捕获空格

生成列表列表的Pythonic方式

python - 检查数字中的数字是否在python中递增

python - 如何使变量专属于类?

python - 如何自定义排序字母数字列表?