gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 08:57:01 28 4
gpt4 key购买 nike

我有这个代码:

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)

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

关于Python - OrderedDict 中的字典理解不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29265435/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com