【问题标题】:Change entire string if contains substring using replace如果包含子字符串,则使用替换更改整个字符串
【发布时间】:2021-11-22 01:52:32
【问题描述】:
a = “thanklynette i owe you one best regardsjohn”
b = [(“lynette”,”john”)]

for i in b:
    a.str.replace(b,’’)
print(a)

我收到一个类型错误,因为替换不接受列表。有办法解决吗?我想要的输出是

a = “i owe you one best” 

或

a = “thank i owe you one best regards”

【问题讨论】:

  • 你可以使用正则表达式来做到这一点,但我会说你正在做的比正则表达式更好
  • a = re.sub( '|'.join(b), '', a )
  • 您好,感谢您的回复,但似乎没有用。我收到错误“序列项 0:预期的 str 实例,找到元组”
  • 我的错误,我假设数组b 将只包含字符串,而不包含元组。即b=["lynette","john"]
  • 它有效。但现在我面临另一个问题,在我的实际版本中,a 实际上是一个数据框,有很多行。有没有办法将 re.sub 应用于数据框中的每一行?

标签: string for-loop replace substring helper


【解决方案1】:

我不确定为什么名称在列表内的元组中,如果它不是重要部分,您可以这样处理。您的代码试图将 a 替换为列表 b 而不是其中的值。

a = 'thanklynette i owe you one best regardsjohn'
b = ['lynette','john']
s = a
for i in b:
    s = s.replace(i," ")
print(s)

但是,如果元组在格式方面很重要,您可以包含一个嵌套循环来访问每个元素。

for i in b:
    for j in i:
        s = s.replace(j," ")

输出

thank  i owe you one best regards 

【讨论】:

    猜你喜欢
    • 2017-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 1970-01-01
    • 1970-01-01
    • 2016-04-09
    • 2018-11-09
    相关资源
    最近更新 更多