Maison > Article > développement back-end > Tri du dictionnaire Python
Nous savons que le type de données du dictionnaire intégré de Python n'est pas ordonné et que la valeur correspondante est obtenue via la clé. Mais parfois, nous devons trier les éléments du dictionnaire et les afficher, peut-être en fonction de la clé ou de la valeur. Combien de méthodes existe-t-il pour trier et afficher le contenu d’un dictionnaire ? Voici quelques solutions intéressantes.
Python dispose de deux façons de trier les données dans le conteneur, l'une est la propre fonction de tri du conteneur et l'autre est la fonction de tri intégrée.
La seule différence entre la fonction de tri et la fonction triée est que sort trie dans le conteneur (sur place) et sorted génère un nouveau conteneur trié.
1 Trier par valeur clé
#最简单的方法,这个是按照key值排序: def sortedDictValues1(adict): items = adict.items() items.sort() return [value for key, value in items] #又一个按照key值排序,貌似比上一个速度要快点 def sortedDictValues2(adict): keys = adict.keys() keys.sort() return [dict[key] for key in keys] #还是按key值排序,据说更快。。。而且当key为tuple的时候照样适用 def sortedDictValues3(adict): keys = adict.keys() keys.sort() return map(adict.get, keys) #一行语句搞定: [(k,di[k]) for k in sorted(di.keys())] #用sorted函数的key参数(func)排序: #按照key进行排序 print sorted(dict1.items(), key=lambda d: d[0])
2 Trier par valeur
#来一个根据value排序的,先把item的key和value交换位置放入一个list中,再根据list每个元素的第一个值,即原来的value值, 排序: def sort_by_value(d): items=d.items() backitems=[[v[1],v[0]] for v in items] backitems.sort() return [ backitems[i][1] for i in range(0,len(backitems))] #还是一行搞定: [ v for v in sorted(di.values())] #用lambda表达式来排序,更灵活: sorted(d.items(), lambda x, y: cmp(x[1], y[1])), 或反序: sorted(d.items(), lambda x, y: cmp(x[1], y[1]), reverse=True) #用sorted函数的key参数(func)排序: # 按照value进行排序 print sorted(dict1.items(), key=lambda d: d[1])
Expansion des points de connaissances :
Connaissances préparatoires :
En python, le dictionnaire est un type de données intégré, une structure de stockage non ordonnée, et chaque élément est une paire clé-valeur :
Tels que : dict = {'username' : 'password', 'database' : 'master'}, où 'username' et 'database' sont des clés, et 'password' et 'master' sont des valeurs, la référence à la valeur correspondante peut être obtenue via d[key], mais la clé ne peut pas être obtenue via value.
Pour le dictionnaire, vous devez connaître les points suivants :
a. La clé du dictionnaire est sensible à la casse
b. dictionnaire Clés répétées ;
c. Les dictionnaires ne sont pas ordonnés et n'ont aucun concept d'ordre des éléments. Ce sont simplement des arrangements de paires d'ordre.
Tutoriels recommandés : "PHP" "Tutoriel Python"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!