Muliple字符串替换Python

时间:2018-06-03 21:03:22

标签: python string python-3.x

我正在从字典中抓取数据,返回的数据为HA。在我的for循环中,它被称为home_away = stats['home_away']

我将字符串名称更改为h_a = home_away.replace("A","@")

工作正常,但我也想将H更改为" "。 我会为此做一个if语句或for循环吗?

我试过

if home_away == "H":
   home_away.replace("H"," ")
elif home_away == "A":
   home_away.replace("A","@")

3 个答案:

答案 0 :(得分:3)

如果该值只是一个字符,为什么还要烦扰.replace()?只需重新分配整个事情。

if home_away == "H":
   home_away = " "
elif home_away == "A":
   home_away = "@"

答案 1 :(得分:2)

一个字符替换

如果您的输入字符串是HA,即一个字符,我建议您使用字典:

mapper = {'H': ' ', 'A': '@'}
home_away = mapper[home_away]

多字符替换

如果要替换多个字符,可以链接str.replace次呼叫:

home_away = home_away.replace('H', ' ').replace('A', '@')

或者,您可以使用str.translatestr.maketrans上面的mapper词典:

home_away = 'HAAAH'
home_away = home_away.translate(str.maketrans(mapper))

print(res)
" @@@ "

答案 2 :(得分:1)

不确定您究竟想要什么,但一个简单的解决方案是不使用任何if或者其他条件并且只是使用:

h_a = home_away.replace("H"," ").replace("A","@");

此解决方案可确保所有H字符都替换为" ",任何A字符都将替换为@。如果没有匹配,那么它不会抛出任何错误,而是保留存储在变量中的现有值并继续运行您的脚本。