我创建了一个
的功能打开文件(文件名)
给定一个字典写入该文件(d)
需要以这种格式将已排序的字典(asciibetically)作为字符串返回:
字典的每个键值对 应输出为:以key开头的字符串,后跟":",一个制表符,然后是来自的整数 价值表。每个整数后跟一个","和一个选项卡除了最后一个选项卡,后面应该跟一个换行符。
所以看起来应该是这样的:
d = {'orange':[1,3],'apple':[2]}
"apple:\t2\norange:\t1,\t3\n"
如何对字典的键进行asciibetically排序并获取此特定的字符串输出?这就是我被困的地方。我知道我应该在某处使用sorted(),但我尝试过的所有操作都会导致错误。
这是我目前的职能:
def store(d,filename):
addfile= open('filename', 'w')
for key, values in d.items():
line='{},{}'.format(key,values)
addfile.write(line, file= addfile)
addfile.close()
return
答案 0 :(得分:0)
def format_item(key, value):
return key + ":\t" + ",\t".join(str(x) for x in value)
def format_dict(d): # returns a sorted list of lines
return sorted(format_item(key, value) for key, value in d.items())
def store(d, filename):
with open(filename, 'w') as f:
f.write("\n".join(format_dict(d)))