【发布时间】:2023-03-16 14:13:01
【问题描述】:
我有一个分配给我的家庭作业任务。基本上问题是:
编写一个可以去掉品牌名称并用通用名称替换它们的程序。
下表显示了一些具有通用名称的品牌名称。该映射也已在您的程序中作为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(),它将把品牌名称和句子的其余部分连接在一起。
【问题讨论】:
-
你在 'sentencelist = sentence.split()' 行之前尝试过 'sentence = sentence.rstrip()' 吗?
-
print(d, end=' ')也在您在句子中打印的最后一行的末尾添加一个空格 -
@kkblue:那没意义;没有参数的
str.split()(或None的显式拆分参数)已经隐式去除了前导和尾随空格以及在空格运行时的拆分。
标签: python replace removing-whitespace