我有很多这样的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
但我不明白...
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
字典。