我有一个循环给我三个变量如何使嵌套的字典和动态数据追加
matteGroup
matteName
object
我想作一个嵌套dicionary保存所有数据,如到:
dictionary{matteGroup: {matteName: obj1, obj2, ob3} }
我我正在逐个检查对象,因此如果它不存在,我想创建matteGroup
,如果它不exixst,则创建matteName
,然后创建或追加对象的名称。 我尝试了很多像普通字典,defaultdict和我在网上找到的一些自定义类的解决方案,但我一直无法做到这一点。我有一个很好的嵌套,我不能追加,反之亦然。
这是循环
dizGroup = {}
dizName = {}
for obj in mc.ls(type='transform'):
if mc.objExists(obj + ('.matteGroup')):
matteGroup = mc.getAttr(obj + ('.matteGroup'))
matteName = mc.getAttr(obj + ('.matteName'))
if matteGroup not in dizGroup:
dizGroup[matteGroup] = list()
dizGroup[matteGroup].append(matteName)
if matteName not in dizName:
dizName[matteName] = list()
dizName[matteName].append(obj)
这个我分别得到两本词典,但不是那么有用! 任何提示?
感谢
你也可以结合最后两个try/except子句,并试图追加首先是列表中的obj ...但它确实有些困难,因为你不知道哪个字典不包含你想要访问的密钥,所以你必须考虑嵌套的try /除了条款,如果你真的想... ... aaaaaaand我刚刚意识到这个问题是从近5年前,所以我怀疑你甚至会看这个答案,嘿。 – 2017-06-11 03:40:07