python tri dictionnaire de la longueur de valeurs
j'ai trouvé beaucoup de fils pour le tri par des valeurs comme ici mais il ne semble pas fonctionner pour moi...
j'ai un dictionnaire de listes qui ont des tuples. Chaque liste a une quantité différente de tuples. Je veux trier le dictionnaire par combien de tuples chaque liste contient.
>>>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
est-ce possible?
31
demandé sur
Community
2013-06-01 06:19:56
2 réponses
>>> 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
cela fonctionne aussi:
>>> print ' '.join(sorted(d, key=lambda k: len(d[k]), reverse=True))
two one three
57
répondu
jamylak
2013-06-01 02:22:54
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_dict
print (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': []}]
0
répondu
Oleksiy Tsebriy
2018-05-21 09:21:11