2016-04-08 134 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,使用dictionary.items()而非iteritems()

+1

我不知道,如果第一種方法是 「幼稚」。然而,它是「就地」的。 –

+0

@JaredGoguen這是人們想要嘗試的第一件事,因此我爲什麼將它標爲天真。 OP沒有指定就地要求。 –

+0

謝謝先生,正是我所需要的。 –