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

我将如何编写这个函数的主体?

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

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

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

4

3 回答 3

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'

请注意,顺序是任意的;字典没有固定的顺序(相反顺序取决于键的插入和删除历史)。

将其包装在一个函数中作为练习留给读者。

于 2013-07-31T19:42:01.573 回答
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
于 2013-07-31T20:08:10.103 回答
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
于 2013-07-31T20:13:50.313 回答