私は何時間もこのことに取り組んできましたが、まだ理解できません:O
私が抱えている問題はこれです。要素として 4 要素のタプル、キーとして整数を持つ辞書があるとします。要素がディクショナリ全体 (すべてのタプルに属する) から削除され、2 つのタプル (要素) が同じになると、2 つのタプルのキーは合計されません。代わりに、新しい要素が形成され、その要素のキーは前の 2 つのキーのいずれかになります。
私が辞書を持っているとしましょう:
dict={('A','B','D','C'): 4, ('C','B','A','D'):5, ('D','A','C','B'):3,('D','A','B','C'):1}
ここで、辞書全体から 1 文字を削除したいと思います。たとえば、「B」を削除したい場合。次の新しい辞書が作成されますが、2 つの要素が同じであるため返されません。
{('A','D','C'): 4, ('C','A','D'):5, ('D','A','C'):3,('D','A','C'):1}
('D','A','C'):3,('D','A','C'):1
になる代わりに('D','A','C'):4
、これが最終的に起こることです:
('D','A','C'):3
他のタプルと一緒に
基本的に、タプルの 1 つが消えます。
これは私が現在使用している方法です:
for next in dict:
new_tuple=()
for i in next:
if i!='A':
new_tuple+=(i,)
new_dict[new_tuple]=dict[next]
上記のコードは、new_dict を次のように返します。
{('A','D','C'): 4, ('C','A','D'):5, ('D','A','C'):3}
では、ディクショナリ全体のすべてのタプルから 1 文字を削除し、2 つのタプルが同じに見える場合、それらをマージしてキーを追加するにはどうすればよいでしょうか?