【问题标题】:How to remove specific amount of words from a string - Python如何从字符串中删除特定数量的单词 - Python
【发布时间】:2018-08-19 17:35:41
【问题描述】:

我想从字符串中删除特定数量的单词。例如,我的字符串是 s = "I am a good person JOKE JOKE JOKE",我想从字符串中删除最后 3 个单词。该怎么做?

【问题讨论】:

  • s.split(" ")[:-3]

标签: python


【解决方案1】:

使用splitjoin 的组合:

s = "I am a good person JOKE JOKE JOKE"

print(' '.join(s.split()[:-3]))
# I am a good person

如果我将其分解为一步一步的格式,它就是这样的:

>>> s = "I am a good person JOKE JOKE JOKE"
>>> s.split()
['I', 'am', 'a', 'good', 'person', 'JOKE', 'JOKE', 'JOKE']  
>>> s.split()[:-3]                                          
['I', 'am', 'a', 'good', 'person']                          
>>> ' '.join(s.split()[:-3])
'I am a good person'

步骤

  • 使用split()将句子拆分为单词。

  • 通过列表切片排除最后三个单词。

  • 使用join()加入列表。


这是我们认为解决问题的最常见方式。但我可以找到另一种解决方案:

print(s.rsplit(' ', 3)[0])

这个使用rsplit,它将分隔符和最大值作为两个参数。我们进行第一次拆分,这应该是我们的结果。

【讨论】:

  • 如果我只需要剪切第 5 个单词之后的单词会怎样?例如,字数限制为 5,而用户给出的字数超过 5,那么如果我只想切片第 5 个字之后的字呢?在这种情况下我该怎么办?
  • 使用print(' '.join(s.split()[:5]))
猜你喜欢
  • 2014-07-03
  • 2014-02-26
  • 2021-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多