首页 > 移动平台 > 详细

reverse/inverse a mapping but with multiple values for each key

时间:2019-11-07 23:12:53      阅读:90      评论:0      收藏:0      [点我收藏+]

reverse/inverse a mapping but with multiple values for each key

multi mappping dictionary , reverse/inverse

'''
mrg_dictionary: {15: {16, 19, 21, 23}, 22: {18}}
inv_merging_led_dict: {16: 15, 19: 15, 21: 15, 23: 15, 18: 22}
    mrg_dictionary --> inv_merging_led_dict
'''
mrg_dictionary = {15: {16, 19, 21, 23}, 22: {18}}
inv_merging_led_dict = {value:key for key in mrg_dictionary for value in mrg_dictionary[key]}
print(inv_merging_led_dict)

'''
inv_merging_led_dict: {16: 15, 19: 15, 21: 15, 23: 15, 18: 22}
mrg_dictionary: {15: {16, 19, 21, 23}, 22: {18}}
    inv_merging_led_dict --> mrg_dictionary
'''
valueset = set(inv_merging_led_dict.values())
mrg_dictionary = {k:set() for k in valueset}    # {15:set, 18:set()}
for key in mrg_dictionary.keys():
    pop_k_list = []
    for k in inv_merging_led_dict:
        if inv_merging_led_dict[k] == key:
            mrg_dictionary[key].add(k)
            pop_k_list.append(k)
    for k in pop_k_list:
        inv_merging_led_dict.pop(k)

print('mrg_dictionary', mrg_dictionary)

reverse/inverse a mapping but with multiple values for each key

原文:https://www.cnblogs.com/sonictl/p/11816116.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!