【每日一题0825】重复无处不在

:woman_mage:已知一个字典格式的数据,key是字符串格式的数,value是一些英文字母组成的列表。请编写一个python3函数,优化该字典数据,对于相同的key,使得对应的所有value的字母仅出现一次。

备注:(1)如果同一个key的value列表中存在重复字母,则只保留最先出现的(位置靠前的)(2)如果两个key拥有重复的字母,那么重复的字母只保留在字面数值较大的key的value中。例如下面的示例中,优化后"A"和"B"保留在"2"的value中。

输入:

{
  "1": ["A", "B", "C"],
  "2": ["A", "B", "D", "A"],
}

输出:

{
  "1": ["C"],
  "2": ["A", "B", "D"],
}

题目难度:中等
题目来源:codewars

def remove_duplicate(data:dict):
    pass

assert remove_duplicate({"1": ["A", "B", "C"],"2": ["A", "B", "D", "A"]}) == {"1": ["C"],"2": ["A", "B", "D"]}

def remove_duplicate(data:dict):
keys = [int() for _ in data.keys()]
keys = sorted(keys, reverse=True)
keys = [str(
) for _ in keys]
new_list=
data1=deepcopy(data)
for i in keys:
count = 0
for a in data1[i]:
if a not in new_list:
new_list.append(a)
count+=1
else:
data[i].pop(count)

return data

没想出解法,暴力求解的

def remove_duplicate(data:dict):
    key_list = []
    for key in data.keys():
        key_list.append(int(key))

    for key_item in key_list:
        value_list=[]
        for value_item in data[str(key_item)]:
            if value_item not in value_list:
                value_list.append(value_item)
        data[str(key_item)]=value_list

    # 键倒序排列
    key_list.sort(reverse=True)

    # 对比数组
    # temp=data[str(key_list[0])]
    temp =copy.deepcopy(data[str(key_list[0])])

    for key_reverse_item in key_list[1:]:

        value_list=[]
        for item in data[str(key_reverse_item)]:

            if item not in temp:
                value_list.append(item)
                temp.append(item)

        data[str(key_reverse_item)]=value_list
    #
    return data