【问题标题】:Print a dictionary based on an ordered list根据有序列表打印字典
【发布时间】:2013-07-17 09:05:18
【问题描述】:

我已经根据字典中的值对字典进行了排序。现在,我想使用排序后的键列表打印字典的有序相关方面。

到目前为止,这是我尝试过的:

sc = sorted(stats,key=lambda x:(stats[x]['avg length'],x)) #to get a sorted list of keys

for sc in stats:
    print "Name %s, Number: %s, Average length: %s, Max length: %s, Min length: %s" % (sc, stats[sc]["number"],stats[sc]["avg length"], stats[sc]["max length"], stats[sc]["min length"])

但是,输出的顺序与我的列表 sc 的顺序不匹配。事实上,我看不到任何输出值的模式..

对不起,如果这是一个微不足道的问题——我是 python 新手 :(

【问题讨论】:

  • 输出是什么?你能指望什么?请提供样品。

标签: python list dictionary sorted


【解决方案1】:

您的for 循环有点倒退。你想迭代你的有序键,而不是你原来的字典:

for key in sc:
    print ... % (key, stats[key], ...

【讨论】:

    【解决方案2】:

    猜测一下,您可能打算这样写:

    for s in sc:
        print "Name %s, Number: %s, Average length: %s, Max length: %s, Min length: %s" % (s, stats[s]["number"],stats[s]["avg length"], stats[s]["max length"], stats[s]["min length"])
    

    您正在替换现有 for 循环分配中的排序列表。

    【讨论】:

    • 是的,就是这样——我对我正在迭代的内容感到困惑。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-19
    相关资源
    最近更新 更多