2016-04-08 24 views
1

こんにちは皆私はPythonにはかなり新しく(これは単純な質問であれば私を許してください)、k-meansアルゴリズムでマルチプロセッシングを行っていますが、データフォーマットに問題があります。私はそうフォーマットされたリストの辞書を持っている:リストの辞書をタプルの辞書に変換する

{0: [122.0, 0.000209], 1: [125.0, 0.000419], 2: [127.0, 0.000233], 3: [120.0, 0.000209], 4: [126.0, 0.000336]} 

が、私は同じように見えるので、タプルの辞書であることを、それを必要とする:私はあなたが機能を使用することができます知っている

{0: (122.0, 0.000209), 1: (125.0, 0.000419), 2: (127.0, 0.000233), 3: (120.0, 0.000209), 4: (126.0, 0.000336)}. 

tuple(list) 

リストをタプルに変換するには、辞書を反復して各エントリをタプルに変更する方法を確認します。誰かがこれを行う方法についてどのようなアドバイスを持っていますか?どんな援助もありがとうございます。

答えて

4

素朴な方法:

for key in dictionary: 
    dictionary[key] = tuple(dictionary[key]) 

またはわずかにきれいに見えるが、そうでない場合は、完全に同一の方法:

for key, value in dictionary.iteritems(): 
    dictionary[key] = tuple(value) 

またはそれ以上の清浄度のための辞書の理解としての最後のリキャスト:

dictionary = {k: tuple(v) for k,v in dictionary.iteritems()} 

このすべてのタスクで十分です。

(Pythonの3では、むしろiteritems()よりdictionary.items()を使用)

+1

最初の方法であれば、私は知らない "ナイーブ"。しかし、それは "インプレース"です。 –

+0

@JaredGoguen誰かが最初に試してみたいと思うものですから、なぜ私はそれを素朴なものにしましたか? OPはインプレース要件を指定していません。 –

+0

私が必要としてくれた、ありがとうございました。 –