更改字典中的值并为其提供 id

问题描述 投票:0回答:1

我有很多这样的Dynamic字典:

{1: 'VDD', 2: 'VDD', 7: 'VDD', 0: 0, 3: 0, 4: 0, 6: 9, 13: 9, 'GND': 'GND', 15: 'GND', 12: 12} 
我想将 ID 设置为键的值,它们不是 'VDD' 和 'GND' 。 在这种情况下,具有相同值的键必须具有相同的 ID 。 ID 必须从 1 开始。

如你所见,我想要这样的输出:

{1: 'VDD', 2: 'VDD', 7: 'VDD', 0: 1, 3: 1, 4: 1, 6: 2, 13: 2, 'GND': 'GND', 15: 'GND', 12: 3}

我试试这个:

my_dict = {1: 'VDD', 2: 'VDD', 7: 'VDD', 0: 0, 3: 0, 4: 0, 6: 9, 13: 9, 'GND': 'GND', 15: 'GND', 12: 12}
i=1
for item in my_dict :
    if my_dict[item] != 'VDD':
        if my_dict[item] != 'GND':
            b = my_dict [item]
            my_dict[item] = i
            if b != :
                i+=1

但我不明白...

python dictionary
1个回答
0
投票
def set_dict_keys():
    my_dict = {1: 'VDD', 2: 'VDD', 7: 'VDD', 0: 0, 3: 0, 4: 0, 6: 9, 13: 9, 'GND': 'GND', 15: 'GND', 12: 12}
    print(my_dict)
    output = {}
    mappings = {}
    current_value = 1
    for key, value in my_dict.items():
        if value not in ['VDD', 'GND']:
            if value not in mappings:
                mappings[value] = current_value
                current_value += 1
            output[key] = mappings[value]
        else:
            output[key] = value
    print(output)

set_dict_keys()

这个想法是保留值到 ID 的映射,然后循环遍历所有

my_dict
项并更新
output
字典。

© www.soinside.com 2019 - 2024. All rights reserved.