如何从现有密钥设置新密钥键:值对一个默认的字典?

2024-10-01 17:21:47 发布

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

我有一个defaultdict(dict)值:

defaultdict(<class 'dict'>, {
  'AL2G22360.t1_Sp': {
    'locus': 'AL2G22360.t1',
    'length': '663', 
    'strain': 'Sp'},
  'AL2G22360.t1_My': {
    'locus': 'AL2G22360.t1',
    'length': '389',
    'strain': 'My'},
  'AL2G22220.t1_My': {
    'locus': 'AL2G22220.t1',
    'length': '865',
    'strain': 'My'},
  'AL2G22220.t1_My': {
    'locus': 'AL2G22220.t1',
    'length': '553',
    'strain': 'My' ........}})

比如说,我想改变它,使major key是{}。因为locus value有一个重复项(非唯一的,但有些可能是唯一的),所以我想从variable **strain**获得另一个子键My vs. Sp。其余的数据可以保持原样。在

预期产量:

^{pr2}$

Tags: keyvaluemyvariablelengthspdictclass
1条回答
网友
1楼 · 发布于 2024-10-01 17:21:47

我会这样做的:

result = defaultdict(lambda: defaultdict(dict))
for k, v in a.items():
  result[v['locus']][v['strain']] = { 'keys': k, 'length': v['length'] }
return result

这将创建一个defaultdict,其值再次为defaultdict,其值为dict。(这与指定的输出相匹配。)然后通过迭代原始值并将所有值复制到新格式中,以直接的方式填充此值。在

相关问题 更多 >

    热门问题