質問です:効率的かつpythonically dictのmy_dict
にリストmy_list
のリストを変換する方法ので、すべてのネストされたリストのゼロ番目の要素がキーであり、残りの要素は値(リストも含む)です。、そのためのn番目の要素をのdictには、リストを変換キー
例:
入力:
my_list = [['a', 'b'],
['b', 'c', 'd', 'e', 'f'],
['g'],
['h', 'i', 'j'],
['k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't']]
出力:
my_dict = {'a': ['b'],
'b': ['c', 'd', 'e', 'f'],
'g': None,
'h': ['i', 'j'],
'k': ['l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't']}
サイドノート:メソッドは、クリーンで効率的にする必要があるので 私のデータセットが巨大です。リストを反復処理することは受け入れられますが、(O(n)の複雑さを保つために)入れ子になるループは避けてください。私は、入力リストを反復処理して0番目の要素をポップする作業を行う関数を書くことに成功しましたが、popping is itself O(n)は全体の解をO(n * n)にしています。
何もし 'mydict [i]が[0]'重複を持っていますか? – voidpro
あなたは 'my_list'を意味しましたか?dictでは重複しているキーがあれば古い値を上書きします。あなたが 'my_list'を意味していた場合、重複があるとは思われません。スクリプトの早い段階でチェックします。 – Artur
はい。私は 'my_list [i] [0]'を意味しました。重複がない場合、以下の回答はデータの中断なしに機能します。 – voidpro