将任意数量的字典拆分为单独的词典?

时间:2017-02-18 17:42:51

标签: python python-3.x dictionary

如何成功运行for循环,以便打印出来。

names = {"James" : "18",
"Bob" : "19",
"adam": "39"
}

我希望它输出如下:

Name1 = {"James" : "18"}
Name2 = { "Bob" : "19"}
Name3 = { "adam": "39"}

我尝试过使用for循环,但我一直都很失败。 我试过了:

names.items()

返回:

dict_items([('adam', '39'), ('Bob', '19'), ('James', '18')])

但我需要它返回单独的词典,如上所示。

1 个答案:

答案 0 :(得分:1)

for i, (k,v) in enumerate(names.items(), 1):
    print('Name%d = %r' % (i, {k:v}))

Name1 = {'Bob': '19'}
Name2 = {'adam': '39'}
Name3 = {'James': '18'}

注意字典不是有序的,因此这里的顺序是任意的。如果您需要特定的订购,可以创建names作为OrderedDict开始,此代码将执行您想要的操作。

编辑:既然你提到你需要存储重复的密钥,你可以这样做:

names = [("James", "18"),
        ("Bob", "9"),
        ("adam", "39")]
for i, (k,v) in enumerate(names, 1):
    print('Name%d = %r' % (i, {k:v}))