首页 > 解决方案 > 如何用字典替换字符串中的 {}

问题描述

 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'}

标签: python

解决方案


对变量的赋值会根据执行序列中的和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

推荐阅读