Dictionary keys in alphabetical order
本问题已经有最佳答案,请猛点这里访问。
在上一个问题中,我发现了如何将我的同事的一些分数拖到一个字典中,该字典位于用冒号分隔的Python每行阅读后数据中。现在,如果我想排列字典,使键按名称顺序排列,那么
我使用了以下方法:
1 | sorted(self.docs_info.items) |
但这没有回报。我还希望它以格式返回到空闲状态
1 2 3 | Adam 12 34 Dave 25 23 Jack 13 |
我试着用
我以前的代码(已完成)显示如下:
1 2 3 4 5 6 | from collections import defaultdict d = defaultdict(list) with open('guesses.txt') as f: for line in f: name,val = line.split(":") d[name].append(int(val)) |
感谢Padraic Cunningham和Antti Haapala!
只需对键进行排序并使用键访问值:
1 2 3 4 5 6 | for k in sorted(d): print(k,d[k]) Adam [12, 34] Dave [23, 25] Jack [13] |
要获取字符串,请使用
1 2 3 4 5 6 | for k in sorted(d): print(k,"".join(map(str,d[k]))) Adam 12 34 Dave 23 25 Jack 13 |
在dict上排序的调用与在
1 2 3 4 5 6 | >>> for name, values in sorted(d.items(), key=lambda x: x[0]): ... print("%s %s" % (name,"".join(map(str, values)))) ... Adam 12 34 Dave 25 23 Jack 13 |