Python:字符串格式中不同类型的字段名称

Python: different types of field name in string formatting

考虑以下字典:

dic1 = {1:'string', '1': 'int'}

让我们应用字符串格式:

print("the value is {0[1]}".format(dic1))
result --> the value is string

但是我怎样才能得到“the value is int”呢?

应该就是这个了

print("the value is {0}".format(dic1['1']))

{0} 仅充当要放入字符串中的文本的占位符。所以一个例子是。

>>> x=1
>>> y=2
>>> z=[3,4,5]
>>> print "X={0} Y={1} The last element in Z={2}".format(x,y,z[-1])
X=1 Y=2 The last element in Z=5

您也可以这样做来改变现状。数字引用格式命令中要使用的参数。

>>> print "X={0} Y={1} The last element in Z={0}".format(x,y,z[-1])
X=1 Y=2 The last element in Z=1

现在看到我将字符串更改为 Z={0} 它实际上是在 .format(x,y,z[-1]) 命令中使用 x

有效,

print("the value is {0}".format(dic1['1']))

编辑 回复@Afshin 的评论

您可以在可迭代对象之前使用 * 运算符以在函数调用中扩展它。例如,

a = [1, 2, 3]
print("X={0} Y={1} The last element in Z={2}".format(*a))

d = {'x': 1, 'y': 2, 'z': 3}
print("X={x} Y={y} The last element in Z={z}".format(**d))