如何在字典中返回包含键和值的str

时间:2013-07-31 19:40:14

标签: python dictionary key

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'
    """

我该怎么写这个函数的主体?

到目前为止,我有以下内容:

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

但我不知道如何制作它所以它以正确的格式出现。我想让每个值/项成为一个列表,所以我可以协调,例如,值[0]和项目[0],值[1]和项目[1]等等

3 个答案:

答案 0 :(得分:2)

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

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

在Python 3上,将.iteritems()替换为.items()map()用于确保在加入之前键和值都是字符串。

演示:

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

请注意,订单将是任意的;字典没有设置顺序(而是顺序取决于键的插入和删除历史记录)。

将此功能包装在一个功能中留给读者练习。

答案 1 :(得分: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

答案 2 :(得分: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