按字母顺序排列的字典键
Dictionary keys in alphabetical order
在我之前的问题中,我发现了如何将我同事的一些分数拖到 post 的字典中。
现在,如果我想排列字典,使键按名称顺序排列,那么 Adam
、Dave
和 Jack
的分数将按该顺序出现。
我用过下面的方法:
sorted(self.docs_info.items)
但那returns没什么。我也希望它以
格式返回到IDLE
Adam 12 34
Dave 25 23
Jack 13
我尝试使用pprint
方法,但也没有用。
我该如何解决这个问题?
我之前的代码(完成)是这样的:
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!
只需对键进行排序并使用键访问值:
for k in sorted(d):
print(k,d[k])
Adam [12, 34]
Dave [23, 25]
Jack [13]
要获取字符串,请使用 str.join
:
for k in sorted(d):
print(k," ".join(map(str,d[k])))
Adam 12 34
Dave 23 25
Jack 13
在字典上调用 sorted 与在 dict.keys()
上调用 sorted 相同,所以我们只需要使用列表中的每个现在排序的键来按所需顺序访问。
>>> 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
在我之前的问题中,我发现了如何将我同事的一些分数拖到 post Adam
、Dave
和 Jack
的分数将按该顺序出现。
我用过下面的方法:
sorted(self.docs_info.items)
但那returns没什么。我也希望它以
格式返回到IDLEAdam 12 34
Dave 25 23
Jack 13
我尝试使用pprint
方法,但也没有用。
我该如何解决这个问题?
我之前的代码(完成)是这样的:
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!
只需对键进行排序并使用键访问值:
for k in sorted(d):
print(k,d[k])
Adam [12, 34]
Dave [23, 25]
Jack [13]
要获取字符串,请使用 str.join
:
for k in sorted(d):
print(k," ".join(map(str,d[k])))
Adam 12 34
Dave 23 25
Jack 13
在字典上调用 sorted 与在 dict.keys()
上调用 sorted 相同,所以我们只需要使用列表中的每个现在排序的键来按所需顺序访问。
>>> 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