凤凰求蛊
>>> 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这是适用于Python 2和Python 3的通用解决方案。>>> print(' '.join(sorted(d, key=lambda k: len(d[k]), reverse=True)))two one three
万千封印
dict= {'a': [9,2,3,4,5], 'b': [1,2,3,4, 5, 6], 'c': [], 'd': [1,2,3,4], 'e': [1,2]}dict_temp = {'a': 'hello', 'b': 'bye', 'c': '', 'd': 'aa', 'e': 'zz'}def sort_by_values_len(dict): dict_len= {key: len(value) for key, value in dict.items()} import operator sorted_key_list = sorted(dict_len.items(), key=operator.itemgetter(1), reverse=True) sorted_dict = [{item[0]: dict[item [0]]} for item in sorted_key_list] return sorted_dictprint (sort_by_values_len(dict))output:[{'b': [1, 2, 3, 4, 5, 6]}, {'a': [9, 2, 3, 4, 5]}, {'d': [1, 2, 3, 4]}, {'e': [1, 2]}, {'c': []}]