2

こんにちは、私は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

1 に答える 1

5

単純な方法:

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 では、dictionary.items()ではなくを使用iteritems())

于 2016-04-08T18:08:29.027 に答える