如何为匹配的 if 条件替换 Python 字典字符串中的单个字符?
给定:
if key[-1] == "d" and val[-1] == "t":
print key, val
versed v3rst
vexed vEkst
voiced vOIst
我想将最后一个字母“t”更改为“d”。我试过:
if key[-1] == "d" and val[-1] == "t":
val[-1] = val[-1].replace("t", "d")
print key, val
但是我得到了错误:
val[-1] = val[-1].replace("t", "d")
TypeError: 'str' object does not support item assignment
有什么建议吗?这似乎是一个简单的 if 和 replace。
最佳答案
字符串是不可变的,你不能通过赋值改变一个字符。你可以使用 replace
,如果你这样做,例如
val = val.replace(...)
但是只改变你需要的最后一个字符:
val = val[:-1] + val[-1].replace(...)
或者只是:
val = val[:-1] + "d"
但是,这仍然不会更新字典,同样是因为字符串是不可变的,并且这会创建一个新对象。为此:
d[key] = ...
关于Python:替换字典值中的单个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23161225/