我环顾四周但没有找到回答我问题的主题。如果你知道有人可以随意重定向我。
我有两个动态创建的词典。 [编辑:'动态'我的意思是这些词典的大小将根据我提供给程序的文件而有所不同。如其中一条评论所示,我可能会误用这个词。请原谅。]
一个包含R,G,B值的字符串,如下所示:
colors = {0: ('255', '255', '255'), 1: ('255', '148', '0'), 2: ('238', '245', '0'), 3: ('255', '0', '0')}
另一个包含R,G,B值的索引信息,如下所示:
index = {511: 0, 365: 1, 488: 2, 500:0, ...}
我创建了一个类:
class ColorArray:
indexArray = []
color = ""
我现在想要在我的'colors'字典中创建与该类一样多的对象,然后在'index'字典中附加所有匹配键的这些对象的indexArray属性
它看起来像这样:
>>>print(ColorArray0.color)
('255', '255', '255')
>>>print(ColorArray1.color)
('255', '148', '0')
>>>ColorArray0.indexArray.append(511)
>>>ColorArray1.indexArray.append(365)
答案 0 :(得分:0)
只需定义如何在类__init__
中处理它,是的,你应该创建类的实例而不是创建类属性:
class ColorArray(object):
def __init__(self, id, color, index = None):
self.id = id
self.colors = color
self.index_array = [x for x, y in index.items() if y == id] if index else []
然后只需将课程收集到你的dict项目中:
result = [ColorArray(id, color, index) for id, color in colors.items()]
这里有live example