小编Gaz*_*hao的帖子

在集合字典中将具有相同值的所有键分组

我正在尝试将集合的字典作为具有重复的值转换为具有唯一集合作为值的字典,同时将键连接在一起。

dic = {'a': {1, 2, 3}, 'b': {1, 2}, 'c': {1, 3, 2}, 'd': {1, 2, 3}}
Run Code Online (Sandbox Code Playgroud)

应该改为

{'a-c-d': {1, 2, 3}, 'b': {1, 2}}
Run Code Online (Sandbox Code Playgroud)

我的尝试如下,但我认为必须有更好的方法。

def transform_dictionary(dic: dict) -> dict:
    dic = {k: frozenset(v) for k, v in dic.items()}
    key_list = list(dic.keys())
    value_list = list(dic.values())
    dict_transformed = {}   
    for v_uinque in set(value_list):
        sub_key_list = []
        for i, v in enumerate(value_list):
            if v == v_uinque:
                sub_key_list.append(str(key_list[i]))
        dict_transformed['-'.join(sub_key_list)] = set(v_uinque)
    return dict_transformed

print(transform_dictionary(dic))
Run Code Online (Sandbox Code Playgroud)

python dictionary set

3
推荐指数
1
解决办法
84
查看次数

标签 统计

dictionary ×1

python ×1

set ×1