2013-06-01 157 views
27

我发现有很多线程通过像here值进行排序,但它似乎并没有为我工作排序字典...蟒蛇由值长

我有有元组列表的字典。每个列表都有不同数量的元组。我想按每个列表包含多少个元组对字典进行排序。

>>>to_format 
>>>{"one":[(1,3),(1,4)],"two":[(1,2),(1,2),(1,3)],"three":[(1,1)]} 
>>>for key in some_sort(to_format): 
     print key, 
>>>two one three 

这可能吗?

回答

50
>>> d = {"one": [(1,3),(1,4)], "two": [(1,2),(1,2),(1,3)], "three": [(1,1)]} 
>>> for k in sorted(d, key=lambda k: len(d[k]), reverse=True): 
     print k, 


two one three 

这也适用于:

>>> print ' '.join(sorted(d, key=lambda k: len(d[k]), reverse=True)) 
two one three 
+2

3分钟标志... :) – jwillis0720

+0

当我尝试运行代码,我得到这个错误: 'NameError:全局名称 'd' 没有定义'。我在Python 2.7.5 – mchangun

+1

'd'是一个样本字典变量名称。在whateer中你的'dict'被调用 – jamylak