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]等等
答案 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