如何将string.format与嵌套dict一起使用

时间:2015-12-23 19:28:10

标签: python

我有一个嵌套的词典:

KEYS1 = ("A", "B", "C")
KEYS2 = ("X", "Y", "Z")

d = dict.fromkeys(KEYS1, dict.fromkeys(KEYS2, 0))

我现在想使用格式将其值嵌入到字符串中,例如

print("d['A']['X']={A,X:d}".format(**d))

输出:

d['A']['X']=0

这不起作用。有关如何正确执行此操作的任何建议吗?

2 个答案:

答案 0 :(得分:9)

KEYS1 = ("A", "B", "C")
KEYS2 = ("X", "Y", "Z")

d = dict.fromkeys(KEYS1, dict.fromkeys(KEYS2, 0))

print("d['A']['X']={A[X]}".format(**d))

输出:

d['A']['X']=0

从python 3.6中,您将能够使用Literal string interpolation访问字符串中的dict:

In [23]: print(f"d['A']['X']={d['A']['X']}")
d['A']['X']=0

答案 1 :(得分:3)

您可以利用str.format能力对您提供的参数进行下标。

KEYS1 = ("A", "B", "C")
KEYS2 = ("X", "Y", "Z")

d = dict.fromkeys(KEYS1, dict.fromkeys(KEYS2, 0))

print("d['A']['X']={[A][X]}".format(d))

这与Padraic Cunningham's answer非常相似,这也是一种很好的正确方法(这就是为什么我+ 1' d)。不同之处在于,在他的回答中,字符串{A[X]}的一部分意味着.format方法正在寻找关键字参数,该参数通过解压缩dict d来提供。

在我的方法中,它期待一个位置参数,它必须是带有键'A'的字典,它也必须是带有键'X'

的字典。