我从一个程序中得到一个dict列表,每个dict中都有相同的键,我想根据每个dict中的:值设置一个类属性列表。dict列表可以有多个相同的值
[
{"key":"value"},
{"key":"differentvalue"},
{"key":"value"},
{"key":"newValue"},
{"key":"newValue"}
]
现在我有了这样一节课
class DynamicAttributesFromDict:
def __init__(self, listed):
for i in range(len(listed)):
name = listed[i]["key"]
p = getattr(self, name, [])
p.append(listed[i])
setattr(self, name, p)
我有这样的方法,所以我可以通过对象新值或者目标值等。 这只是一个例子,列表中真正的dict要长得多,而且是由程序创建的。你知道吗
我应该首先使用hasattr来检查属性和要附加的getattr吗?你知道吗
上面的工作,但它似乎粗略
对python类来说有点陌生,所以任何帮助都将不胜感激
编辑:
我认为这是更好的表现
from pprint import pprint
listdict = [
{"key":"value", "difkey":"something"},
{"key":"differentvalue", "xkey":"yvalue"},
{"key":"value"},
{"key":"newValue"},
{"key":"newValue"}
]
class DynamicAttributesFromDict:
def __init__(self, listed):
for i in range(len(listed)):
name = listed[i]["key"]
p = getattr(self, name, [])
p.append(listed[i])
setattr(self, name, p)
f = DynamicAttributesFromDict(listdict)
pp(f.value)
pp(f.differentvalue)
pp(f.newValue)
输出一个生成器对象,该对象变成如下列表:
或者我们可以做一个列表:
我正在重读你的问题,以确保我正确地回答了它,但我不确定我是否回答了。如果你在找别的东西,请告诉我。你知道吗
相关问题 更多 >
编程相关推荐