Python -- OrderedDict 中的字典理解不起作用

Python -- Dictionary comprehension inside an OrderedDict not working

我有这个代码:

self.statusIcons = collections.OrderedDict
for index in guiConfig.STATUS_ICON_SETS:
     self.statusIcons[index] = {condition:\
           wx.Image(guiConfig.STATUS_ICON_STRING.format(index, condition),wx.BITMAP_TYPE_PNG).ConvertToBitmap() \
           for condition in guiConfig.STATUS_ICON_CONDITIONS}

它建立了一个由 wx.Image 对象组成的正则字典的 ordereddict。我最初有嵌套的 dict 理解并且它工作正常但决定我需要订购顶级 dict 所以最终以这种方式结束。问题是现在我得到这个错误:

TypeError: 'type' object does not support item assignment

关注有问题的代码段。我不知道我做错了什么。 ordereddict 是否不允许理解,即使它不是顶级的?也许它试图在 ordereddict 中对所有字典进行排序,但不能因为理解处于较低级别?不确定,也许这是我由于隧道视野而无法发现的荒谬之处。

PS:如果你需要知道我在上面引用的全局变量中有什么:

STATUS_ICON_SETS = ("comp", "net", "serv", "audio", "sec", "ups", "zwave", "stats")
STATUS_ICON_CONDITIONS = ("on", "off")
STATUS_ICON_STRING = "images/{0}_{1}.png"

您需要调用类型来创建实例:

self.statusIcons = collections.OrderedDict()

你省略了那里的()

您也可以在此处生成 (key, value) 元组的生成器表达式中创建 OrderedDict 元素:

self.statusIcons = collections.OrderedDict(
    (index, {condition: wx.Image(
                 guiConfig.STATUS_ICON_STRING.format(index, condition),
                 wx.BITMAP_TYPE_PNG).ConvertToBitmap()
             for condition in guiConfig.STATUS_ICON_CONDITIONS})
    for index in guiConfig.STATUS_ICON_SETS)

但我不确定这种方法是否提高了可读性。