首页 > 解决方案 > 如何转换。通过关键字将样本字典转换为不同格式?

问题描述

如果我有这样的示例字典:

sample_field = {'XG102': '1/1:0,76:76:99:1|1:48306945_C_G:3353,229,0',
             'XG103': '1/1:0,52:52:99:.:.:1517,156,0',
             'XG104': '0/1:34,38:72:99:.:.:938,0,796'}

通过给出关键字,我想像这样转换这个示例字典:

    output = {'XG102': {'1: '0,76',
           '2': '76',
           '3': '99',
           '4': '1/1',
           '5': '1|1',
           '6': '48306945_C_G',
           '7': '3353,229,0'},
   'XG103': {'1': '0,52',
           '2': '52',
           '3': '99',
           '4': '1/1',
           '5': '.',
           '6': '.',
           '7': '1517,156,0'}
    ....

我尝试使用索引之类的键将示例字典映射到新字典,但它不起作用。有什么建议吗?

标签: python

解决方案


您可能正在使用enumerateand寻找字典理解split

sample_field = {
    "XG102": "1/1:0,76:76:99:1|1:48306945_C_G:3353,229,0",
    "XG103": "1/1:0,52:52:99:.:.:1517,156,0",
    "XG104": "0/1:34,38:72:99:.:.:938,0,796",
}

out = {
    key: dict(enumerate(value.split(":"), 1))
    for (key, value) in sample_field.items()
}

——out将是

{
    "XG102": {
        1: "1/1",
        2: "0,76",
        3: "76",
        4: "99",
        5: "1|1",
        6: "48306945_C_G",
        7: "3353,229,0",
    },
    "XG103": {
        1: "1/1",
        2: "0,52",
        3: "52",
        4: "99",
        5: ".",
        6: ".",
        7: "1517,156,0",
    },
    "XG104": {
        1: "0/1",
        2: "34,38",
        3: "72",
        4: "99",
        5: ".",
        6: ".",
        7: "938,0,796",
    },
}

推荐阅读