我正在从字典中抓取数据,返回的数据为H
或A
。在我的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","@")
答案 0 :(得分:3)
如果该值只是一个字符,为什么还要烦扰.replace()
?只需重新分配整个事情。
if home_away == "H":
home_away = " "
elif home_away == "A":
home_away = "@"
答案 1 :(得分:2)
如果您的输入字符串是H
或A
,即一个字符,我建议您使用字典:
mapper = {'H': ' ', 'A': '@'}
home_away = mapper[home_away]
如果要替换多个字符,可以链接str.replace
次呼叫:
home_away = home_away.replace('H', ' ').replace('A', '@')
或者,您可以使用str.translate
和str.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
字符都将替换为@
。如果没有匹配,那么它不会抛出任何错误,而是保留存储在变量中的现有值并继续运行您的脚本。