删除包含特定字母的单词

时间:2020-05-13 19:42:51

标签: python string pandas

假设我有一个类似

的字符串
test = "hello Everyone! My name is Dan."

我想创建一个函数来删除所有包含特定字母的单词,例如!

那么我的字符串应该是

"hello My name is Dan."

我在test.split(' ')处尝试过,如果包含特定字母,则将其替换为''。但是,由于我的文档很长,所以效率似乎有点低。

还有其他简单紧凑的方法可以解决此问题吗?

提前谢谢! =]

5 个答案:

答案 0 :(得分:2)

如果要对一系列条目中的大量条目进行此操作,则可以执行以下操作:

df['ser'] = df['ser'].str.replace(r'\w+[!.,]', '')

这会将方括号内任何字符后面的任何单词替换为空白,这是熊猫系列的一种很好的矢量化方法。

答案 1 :(得分:0)

我相信您这样做的方式是最快的方法,但是您可能希望在其中使用一些更快的关键字。试试这个:

test = "hello Everyone! My name is Dan."
words = test.split(" ")
words = [word for word in words if not "!" in word]
answer = " ".join(words)

答案 2 :(得分:0)

您可以同时使用两种方法splitjoin。因此,基本上,您的功能仅是一行(return语句)。

  def removeChar(string , char):
      return "".join(string.split(char)) 

  result = removeChar("hello Everyone! My name is Dan.",'!')
  print (result)

这是您家庭作业的一部分吗?不要欺骗男人,尝试自己,只有在您至少尝试过之后才来;)

我还建议您使用REPL,这是一种适用于Python和其他语言的出色的实时实时在线解释器。在此检查此解决方案

https://repl.it/@inGodwetrust/RealisticStridentMatch

答案 3 :(得分:0)

您可以创建一个列表并将特定的字母放入其中,然后使用for将其替换为空格。像这样:

specific_chars = [';', ':', '!', "*"] 

test = "hello Everyone! My name is Dan."

for i in specific_chars : 
    test_string = test.replace(i, '') 

print(test_string)

答案 4 :(得分:-1)

对字符串使用替换方法,即txt =“大家好!我叫Dan。”

x = txt.replace(“所有人!”,“”)

打印(x) `