2013-07-31 25 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 
相关问题