辞書のタプルで重複する項目を削除する方法について助けが必要です。
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}
この場合は1である最小値を持っているので'DELTA'
、次のように要素を削除したい:
{('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
せずに辞書として返すにはどうすればよいですか?
問題はこれに似ています。