python - 如何用字典替换字符串中的 {}
问题描述
num= {1:'a',2: 'z'}
a='{} is {}'.format(num[1],num[2])
num[1] = "hello"
我可以知道为什么变量“a”仍然与旧变量相同,尽管我已通过使用切片 num[1] 将其替换为其他词吗?
print(a)
>>>
a is z
num
>>>
{1: 'hello', 2: 'z'}
解决方案
对变量的赋值会根据执行序列中的和a
的值生成一个静态字符串。之后更新字典不会重新生成 的值。num[1]
num[2]
a
如果要a
更改字典的内容,则需要将其设为可执行函数或 lambda,以便在每次使用时重新评估它:
num= {1:'a',2: 'z'}
def a(): return '{} is {}'.format(num[1],num[2])
print(a()) # a is z
num[1] = "hello"
print(a()) # hello is z
推荐阅读
- java - 如何在安装了 openJDK 的 docker 容器上运行没有 JDK 的 JCMD
- hibernate - Fetch Type Eager 不适用于过滤器
- c# - C#:从变量中重新抛出异常,同时保留堆栈跟踪
- apache-mina - mina传输频率太快,导致接收到的数据包被合并
- ios - 此服务器的证书无效(具有自签名 SSL 证书的服务器)
- regex - 删除记事本++上的行
- c# - 如何在 ASP.NET MVC 中使用另一个 cshtml 文件作为 SelectPDF 标头?
- azure-iot-hub - azure-iot-hub System.IO.IOException:身份验证失败,因为远程方已关闭传输流
- wordpress - certbot 证书请求 - 连接被拒绝
- java - 如何在android studio中接听电话时暂停背景音乐流?