python - 按字母顺序排列的字典键

标签 python dictionary printing

<分区>

在我之前的问题中,我在帖子 Reading data separated by colon per line in Python 中找到了如何将我同事的一些分数拖到字典中的方法。 . 现在,如果我想排列字典,使键按名称顺序排列,那么 AdamDaveJack 的分数将以该顺序出现。

我用过下面的方法:

sorted(self.docs_info.items)

但这什么也没有返回。我也希望它以格式返回到 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 是一样的,所以我们只需要使用列表中每个现在排序的键来按所需顺序访问。

关于python - 按字母顺序排列的字典键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28387029/

相关文章:

python - 如何将 timeit 与包含 EOL 字符的命令一起使用?

python - ldap3 python 搜索组成员并检索他们的 sAMAcountName (Active Directory)

c# - Dictionary<string, object>-to-BsonDocument 转换省略 _t 字段

用于打印的 Javascript 事件处理程序

java - 签名的 Java Applet 提示打印机访问

python - 为什么 python 不再等待 os.system 完成?

javascript - 像在 JS 中一样处理 Python 异常

arrays - 如何转换字典 [String :Bool] to an array [String] in swift?

将字典转换为 namedtuple 或其他类似哈希的字典的 Pythonic 方法?

wpf - 打印 WPF FlowDocument