Python 3.x 如何在另一个空词典中输入词典?

Python 3.x 如何在另一个空词典中输入词典?,python-3.x,nested,dictionary-comprehension,Python 3.x,Nested,Dictionary Comprehension,示例代码- innerdict = {} outerdict = {} for line in range(1, 10, 2): for j in range(1, 10, 2): line_tuple = ("Item" + str( line ), int( line )) key = line_tuple[1] if line ==j: outerdict[key] = dict( inner

示例代码-

innerdict = {}
outerdict = {}
for line in range(1, 10, 2):
    for j in range(1, 10, 2):
        line_tuple = ("Item" + str( line ), int( line ))
        key = line_tuple[1]
        if line ==j:
           outerdict[key] = dict( innerdict )
           outerdict[key] = {'Name': '{0}'.format( "item"+str(j) ), 'Price': '{0}'.format( j )}
print(outerdict)
输出结果是这样的-

{1: {'Name': 'item1', 'Price': '1'}, 3: {'Name': 'item3', 'Price': '3'}, 5: {'Name': 'item5', 'Price': '5'}, 7: {'Name': 'item7', 'Price': '7'}, 9: {'Name': 'item9', 'Price': '9'}}
上述输出是可以实现的,因为它是传统的。我在网上找到了很多关于嵌套词典理解的建议

但我希望输出结果如下所示-

{{'Name': 'item1', 'Price': '1'}, {'Name': 'item3', 'Price': '3'}, {'Name': 'item5', 'Price': '5'},  {'Name': 'item7', 'Price': '7'}, {'Name': 'item9', 'Price': '9'}}

提前谢谢

你想要的是一个字典列表。而这个
{'Name':'item1','Price':'1'},{'Name':'item3','Price':'3'},{'Name':'item5','Price':'5'},{'Name':'item7','Price':'7'},{'Name':'item9','Price':'9'}
是无效的,因为字典被认为是一个键值对,而且里面没有键

可以通过将上述参数指定给变量,然后检查其类型来检查它

d = {{'Name': 'item1', 'Price': '1'}, {'Name': 'item3', 'Price': '3'}, {'Name': 'item5', 'Price': '5'},  {'Name': 'item7', 'Price': '7'}, {'Name': 'item9', 'Price': '9'}}
print(type(d))

这将导致一个错误,说它不可损坏。

这是不可能的,因为
dict
对象是不可散列的

{{1:2}
意味着将dict
{1:2}
放入
集合
,这是不可能的,因为上面提到的对象是不可散列的。最好将它们列在一个列表中:


[{1:2},{2:3}]

你是说你想要一个集合而不是一个dict?还是一份清单?或者你只是想让你的打印输出看起来像那样?嗯,我想如果我能把字典添加到一个列表中会更好。我可以把它们放在一个列表中。谢谢