使用特殊字符格式化字符串

2024-09-29 02:25:52 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码抛出KeyError。有什么想法吗?我试着把牙套加倍,但还是没有成功

v = "My Name='{x[1].name}'"
p = "x[1].name"
pv = 'test'
v = v.format(p=pv)
print(v)

我也不想创建另一个变量,希望对v变量进行格式化

预期产量

My Name='test'

Tags: 代码nametestformatmyprint产量pv
3条回答

由于使用x[1].name对您来说似乎很重要,您可以尝试:

class y:
    name = 'test'

v = "My Name='{p}'"
x = [0, y]
v = v.format(p=x[1].name)
print(v)

如果确实必须使用{x[1].name}作为格式标记,则可以创建一个合适的对象来代替x

v = "My Name='{x[1].name}'"

class Foo:
    name = 'test'

print(v.format(x=[Foo,Foo]))

输出:

My Name='test'

这里x是一个列表,x[1]是类Foo,x[1].name是字符串“test”,根据需要

不确定您想用p=pv做什么,但下面是string.format()的工作方式

pv = 'test'
print("My Name='{}'".format(pv))
# My Name='test'

相关问题 更多 >