【问题标题】:Is there a "one-liner" way to get a list of keys from a dictionary in sorted order?是否有一种“单线”方法可以按排序顺序从字典中获取键列表?
【发布时间】:2008-11-29 05:03:14
【问题描述】:

列表sort()方法是一个返回None的修饰函数。

因此,如果我想遍历字典中的所有键,我无法做到:

for k in somedictionary.keys().sort():
    dosomething()

相反,我必须:

keys = somedictionary.keys()
keys.sort()
for k in keys:
    dosomething()

有没有一种很好的方法可以按排序顺序遍历这些键,而不必将其分解为多个步骤?

【问题讨论】:

    标签: python iterator syntactic-sugar


    【解决方案1】:
    for k in sorted(somedictionary.keys()):
        doSomething(k)
    

    请注意,您还可以像这样获取按键排序的所有键和值:

    for k, v in sorted(somedictionary.iteritems()):
       doSomething(k, v)
    

    【讨论】:

      【解决方案2】:

      我可以回答我自己的问题吗?

      我刚刚发现了方便的“排序”函数,它完全符合我的要求。

      对于排序中的 k(somedictionary.keys()): 做点什么()

      它显示在Python 2.5 dictionary 2 key sort

      【讨论】:

        【解决方案3】:

        其实 .keys() 并不是必须的:

        for k in sorted(somedictionary):
            doSomething(k)
        

        [doSomethinc(k) for k in sorted(somedict)]
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-18
          • 1970-01-01
          • 1970-01-01
          • 2016-04-21
          相关资源
          最近更新 更多