私は既存のdict
を持っていますが、値はありません。私はそうのように、同時に2つのリストを反復処理して値を移入したいと思います: Dict to Read Listをタプルとして強制的に
for (pair,name) in enumerate(zip([[0,1],[0,2],[0,3],[1,2],[1,3],[2,3]], ['pair1','pair2','pair3','pair4','pair5','pair6'])):
my_dict[tuple(name)] = pair
は、しかし、私はエラーを取得する:非ハッシュタイプ:リスト。
だから、タプルとしてリストをキャストしようとする試みがうまくいかないようです。タプルを選ぶ理由は、私が他の投稿から読んだことは、より良い方法だからです。
このメソッドを調整して、希望どおりに動作させることはできますか?私は他のソリューションにもオープンしています。
更新
私はポストに私の全体の機能を入れていないために責任を取るだろう。もっと簡潔にすると分かりやすくなると思ったが、最終的にはいくつかの重要な細部は見落とされていた。そのために残念。私はここでnumpy
とsklearn
で働いていることは私の全体の機能である:
pair_names = ['pair1','pair2','pair3','pair4','pair5','pair6']
pair_dict = {p:[] for p in pair_names}
for (pair,key) in zip([[0,1],[0,2],[0,3],[1,2],[1,3],[2,3]], ['pair1','pair2','pair3','pair4','pair5','pair6']):
x = iris.data[:,pair]
y = iris.target
clf = DecisionTreeClassifier().fit(x,y)
decision_boundaries = decision_areas(clf,[0,7,0,3])
pair_dict[key] = decision_boundaries
これまでのところ、この質問への回答からの提案に行く、私はenumerate
を取り除き、単にzip
を使用します。残念ながら、今度はclf = DecisionTreeClassifier().fit(x,y)
という行にエラーが表示されます。サンプル数がラベルの数と一致しません。私はサンプルサイズを全く変更しなかったので、私は奇妙に感じます。私の唯一の推測では、それはenumerate
またはzip
とは何かを持っている - それは、ドキュメントの例
あなたは '何をチェックしています列挙する(zip(...)) '実際に返す?それはあなたが思うものではありません。 –
'list 'は変更可能であるため、辞書キーとして使用することはできません。 'my_dict = {[1]:1}'を実行しようとすると、 'TypeError:unhashable type: 'list''が返されます。 –
@tobias_kありがとう、私はそれらを混ぜ合わせました。私はほんの数分前に自分自身に気づいた。投稿が更新されました。 –