エントリが次のタプルの入力リストがあります。
input_1 = [('v1',['f1','f2','f3']),('v2',['f1','f2','f4']),('v3',['f1','f2','f4'])]
^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^
次のような「グループ」を含むタプルのリストを取得する方法があるかどうかを知りたいです。
output_1 = [(['f1','f2'],['v1','v2','v3']) , (['f3'],['v1']), (['f4'],['v2','v3'])]
十分な情報がない場合、他の入力/出力は次のようになります。
input_2 = [('v1',['f1']),('v2',['f2','f3']),('v3',['f4'])]
output_2 = [(['f1'],['v1']) , (['f2','f3'],['v2']), (['f4'],['v3'])]
また
input_3 = [('v1',['f1','f2']),('v2',['f1','f2']),('v3',['f3']),('v4',['f1','f2'])]
^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^
output_3 = [(['f1','f2'],['v1','v2','v4']) , (['f3'],['v3'])]
辞書を実装することでこれを達成する方法があると思いますが、私はPythonを初めて使用するので、これまでに見た例からこれを行う方法がわかりません:
Python でのセット メンバーシップによる整数のグループ化
リスト内のすべての辞書に同じキーがあることを確認してください
たくさんの for ループを使って非効率的にこれを行うことができたと思いますが、pythonic またはクリーンな代替手段はありますか? この質問が適切に提起されていない場合は申し訳ありませんが、ご意見をお寄せいただきありがとうございます。