我需要有关如何删除字典元组中重复项的帮助。
dict of {tuple of (str, str, str, str): int}) -> tuple of (str, None)
这是字典:
{('ALPHA', 'BETA', 'GAMMA', 'DELTA'): 5
('BETA', 'GAMMA', 'ALPHA', 'DELTA'): 3
('DELTA', 'BETA', 'GAMMA', 'ALPHA'): 1
('GAMMA', 'DELTA', 'ALPHA', 'BETA'): 3
('BETA', 'ALPHA', 'DELTA', 'GAMMA'): 4}
并且整数是第一个索引的值tuple
,我可以通过以下方式对它们进行分组:
def rad_type(particle):
my_dict = {}
for (k, v) in particle.items():
if (k[0] in my_dict):
my_dict[k[0]] += v
else:
my_dict[k[0]] = v
return my_dict
这将返回:
{'ALPHA': 5, 'BETA': 7, 'GAMMA': 3, 'DELTA': 1}
由于'DELTA'
具有最小值,在这种情况下为 1,但我想像这样删除元素:
{('ALPHA', 'BETA', 'GAMMA'): 5
('BETA', 'GAMMA', 'ALPHA'): 7
('BETA', 'GAMMA', 'ALPHA'): 1
('GAMMA', 'ALPHA', 'BETA'): 3}
这给出了ALPHA = 5, BETA = 8, GAMMA = 3
; 这就是我真正需要的字典。
我试图删除最少的元素但它不起作用?
for (p, v) in my_dict.items():
if (max(my_dict.values()) / sum(my_dict.values()):
if (v == min(my_dict.values())):
del my_dict[p]
return my_dict
但这给了ALPHA = 5, BETA = 7, GAMMA = 3
由于这会返回一个字典,我如何使用 a 删除重复项tuple
并将其作为字典返回而不导入任何内容?
问题与此类似。