Python:替换字典值中的单个字符

标签 python string dictionary replace

如何为匹配的 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/

相关文章:

c++ - 获取指针的子串

string - 如何在 Rust 中将字符串拆分为 block 以插入空格

python - 在字典中的另一个列表中查找列表的最大长度

python - 无法导入 Pytorch [WinError 126] 找不到指定的模块

python - python 中的导入是静态的,有什么解决方案吗?

插入字符的 Pythonic 方式

SQL-server 创建字典表的好方法

Swift 字典默认值

python - PyQt5 正确销毁一个程序

python - Google App Engine 上的 PeeWee + SQLite3