Python setdefault-向键添加多个值
我正在编写一个脚本,需要按以下格式扫描列表Python setdefault-向键添加多个值,python,python-2.7,dictionary,Python,Python 2.7,Dictionary,我正在编写一个脚本,需要按以下格式扫描列表 [jobname,username,permissions] 之后,我需要设置一个字典,它将提供以下格式的信息 jobname -> [username ] - [perm1,perm2] 在这里,perm可以是读/写等权限。因此,对于单个作业,可以存在多个用户,并且可以具有不同的权限 目前我使用的setdefault如下: def mapData(self): """ Create a dictionary
[jobname,username,permissions]
之后,我需要设置一个字典,它将提供以下格式的信息
jobname -> [username ] - [perm1,perm2]
在这里,perm可以是读/写等权限。因此,对于单个作业,可以存在多个用户,并且可以具有不同的权限
目前我使用的setdefault如下:
def mapData(self):
"""
Create a dictionary from the list of jobs information
gathered in parser
"""
self.fDict={}
for jobName,uname,perms in self.TestArray:
#print jobName
#Need a way to add multiple perms
#The program for now only adds the last perm value as expected
self.fDict.setdefault(jobName,{})[uname]=perms
'''
DEBUG
'''
#for k,v in self.fDict.items():
#print 'Key->>'+str(k)+'->>>>>>>>>>>>>>>>>>'+str(v)
正如在评论中提到的,我只能添加最后一个perm值,这不是需要的。我还需要类似list.append(perms)的值部分,但无法解决这个问题。请提供指导。您在这里有两个级别;包含列表的字典。添加另一个setdefault()
调用:
self.fDict.setdefault(jobName, {}).setdefault(uname, []).append(perms)
现在fDict
包含键入jobName
的字典,其中包含的字典包含键入uname
的perm
值列表
演示:
你在这里有两个等级;包含列表的字典。添加另一个setdefault()
调用:
self.fDict.setdefault(jobName, {}).setdefault(uname, []).append(perms)
现在fDict
包含键入jobName
的字典,其中包含的字典包含键入uname
的perm
值列表
演示: