Python-如何在文件中对字典进行排序并输出特定格式?

时间:2017-04-15 13:50:30

标签: python python-3.x sorting dictionary

我创建了一个

的功能
  1. 打开文件(文件名)

  2. 给定一个字典写入该文件(d)

  3. 需要以这种格式将已排序的字典(asciibetically)作为字符串返回:

      

    字典的每个键值对   应输出为:以key开头的字符串,后跟":",一个制表符,然后是来自的整数   价值表。每个整数后跟一个","和一个选项卡除了最后一个选项卡,后面应该跟一个换行符。

  4. 所以看起来应该是这样的:

    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
    

1 个答案:

答案 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)))