如何转换。按关键字将示例词典转换为不同格式?

2024-09-10 15:13:23 发布

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

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

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'}
    ....

我试图通过使用像索引一样的键将示例字典映射到新字典,但它不起作用。 有什么建议吗


2条回答

您可能正在使用enumeratesplit查找词典理解:

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",
    },
}

这应该起作用:

def create_split_dict(val):
  tokens = val.split(":")
  return {index+1:item for index, item in enumerate(tokens)}

output = {key:create_split_dict(val) for key, val in sample_field}

相关问题 更多 >