実現したいこと
mydict = { ('A', 'B'): { 'G', 'H' },('C', 'D'): { 'I', 'H' },('E', 'F'): { 'G' }}
上記のような辞書を与えられたとき重複している値を修正して以下のようなそれぞれのキーに一意の値が割り当てられている形に変更したいです。🙇♂️
mydict = { ('A', 'B'): { 'H' },('C', 'D'): { 'I' },('E', 'F'): { 'G' }}
前提
importはなしでお願いします💦
手順:
mydict = { ('A', 'B'): { 'G', 'H' },('C', 'D'): { 'I', 'H' },('E', 'F'): { 'G' }}
#辞書内で重複していてペアがいるものを探してもしいたら消す。
#値{ 'G' }を消してしまうと('E', 'F')の値がなくなるので('A', 'B')の値{ 'G', 'H' }の'G'をけす。
mydict = { ('A', 'B'): { 'H' },('C', 'D'): { 'I', 'H' },('E', 'F'): { 'G' }}
#値{ 'H' }を消してしまうと('A', 'B')の値がなくなるので('C', 'D')の値{ 'I', 'H' }の'H'をけす。
mydict = { ('A', 'B'): { 'H' },('C', 'D'): { 'I', 'H' },('E', 'F'): { 'G' }}
上記の手順をいくつかの同じような辞書で試せるようにしたいです。
また、以下のような値を一意にできない辞書の場合はNoneを返したいです。
mydict = { ('A', 'B'): { 'E' },('C', 'D'): { 'E' }}
長くなりましたがよろしくお願いします。🙇♂️
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
python
1#キーを格納 2newlist = {} 3 4#値を抽出 5new_list = {} 6for item_set in games.values(): 7 new_list.append(list(item_set)) 8def unique_keys(lst): 9 seen = {} 10 result = [] 11 for item in lst: 12 if item not in seen: 13 seen[item] = True 14 result.append(item) 15 return result 16 17i = 0 18for step in len(new_list ): 19 newlist[i] = {result[i]}#重複していない値を埋め込む 20 i = i + 1
試したこと
該当のソースコードではキーと値を一度分解して値が重複しているものを探そうとしたものですが。そもそもの考え方が間違っているかもしれないので役に立たないかもしれないです。💦
値を抽出、比較して一意になった後にもう一度値をもとのキーに割り当てればいいと思っていましたが、重複している値を検索、消去する方法がわからなくて止まっています。
補足情報(FW/ツールのバージョンなど)
使用しているのはpython(3.10.6)

回答1件
あなたの回答
tips
プレビュー