使用defaultdict的python字典(list)

2024-10-02 10:20:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用collections.defaultdict(list)。在

我的指纹如下:

{ 'A': [{'UNP': 'P01899'}],
  'C': [{'PDB': '2VE6'}], 
  'B': [{'PDB': '2VE6'}, {'UNP': 'P01887'}], 
  'E': [{'PDB': '2VE6'}, {'UNP': 'P01887'}],
  'D': [{'UNP': 'P01899'}],
  'G': [{'UNP': 'P01899'}],
  'F': [{'PDB': '2VE6'}], 
  'I': [{'PDB': '2VE6'}],
  'H': [{'PDB': '2VE6'}, {'UNP': 'P01887'}],
  'K': [{'PDB': '2VE6'}, {'UNP': 'P01887'}],
  'J': [{'UNP': 'P01899'}], 
  'L': [{'PDB': '2VE6'}] }

我想做的是如果'UNP'做某事,如果'PDB'而没有{},那么就用一个子句来做一些不同的事情。在

我对脚本非常陌生。所以任何帮助都是非常感谢的。 谢谢


Tags: 脚本事情collectionspdblist指纹子句defaultdict
2条回答

如果每个项目最多只能有1个“UNP”和1个“PDB”,则应在开头使用defaultdict(dict)。然后可以执行以下插入操作:

mydict['A']['UNP'] = 'P01899'

自动轻松地获得一个像

^{pr2}$

那么你想要的就很简单了:

itemA = mydict['A']
if 'UNP' in itemA:
    # now we have 'UNP'
elif 'PDB' in itemA:
    # now we have PDB but not UNP

一种方法是

>>> for key,val in my_dict.items():
...     keys = [v.keys()[0] for v in val]
...     if "UNP" in keys: print "UNP in",key
...     elif "PDB" in keys: print "PDB in",key
...
UNP in A
PDB in C
UNP in B
UNP in E
UNP in D
UNP in G
PDB in F
PDB in I
UNP in H
UNP in K
UNP in J
PDB in L
>>>

相关问题 更多 >

    热门问题