2013-07-31 55 views
-1
def dict_to_str(d): 
    """ (dict) -> str 

    Return a str containing each key and value in d. Keys and values are 
    separated by a space. Each key-value pair is separated by a comma. 

    >>> dict_to_str({3: 4, 5: 6}) 
    '3 4,5 6' 
    """ 

如何寫這個函數的主體?如何在字典中返回包含鍵和值的str

到目前爲止,我有以下幾點:

for values in d.values(): 
    print(values) 
for items in dict.keys(d): 
    print(items) 

,但我不知道,它在正確的格式來了我將如何做到這一點。我想將每個值/項目列表,所以我可以協調例如值[0]和項目[0],值[1]和項目[1]等等

+2

請添加您嘗試的問題。 :) –

+0

爲什麼你需要這個功能? (是否功課?) – user2357112

+0

謝謝,我已經添加了我的嘗試 這是一個本應該在教程中完成的練習(用於我們的學習目的)。我試圖追上教程,我發現看到正確的函數有助於我破解它正在做的事情(否則我完全失去了,並可能花費很長時間在函數上無濟於事) – user2639519

回答

2

使用str.join()和一個列表理解:

','.join([' '.join(map(str, item)) for item in d.iteritems()]) 

在Python 3中,與.items()更換.iteritems()map()用於在加入之前確保鍵和值都是字符串。

演示:

>>> d = {3: 4, 5: 6} 
>>> ','.join([' '.join(map(str, item)) for item in d.iteritems()]) 
'3 4,5 6' 

注意,爲了將任意的;字典沒有設置順序(取而代之的順序取決於鍵的插入和刪除歷史記錄)。

把這個包裝在一個函數中留給讀者練習。

1
def dict_to_str(d): 
    lDKeys = d.keys() 
    lDValues = d.values() 
    sD = ','.join([lDKeys[i]+' '+lDValues[i] for i in range(len(d))]) 
    return sD 
1

是我的分解列表理解一個簡單的版本是:

def dict_to_str(d): 
    lDKeys = d.keys() 
    lDValues = d.values() 
    lD = [] 
    for i in range(len(d)): 
     lD.append(lDKeys[i]+' '+lDValues[i]) 
    sD = ','.join(lD) 
    return sD 
相關問題