Maison > développement back-end > Tutoriel Python > Les dictionnaires Python peuvent-ils être triés ?

Les dictionnaires Python peuvent-ils être triés ?

anonymity
Libérer: 2019-06-14 11:25:03
original
8512 Les gens l'ont consulté

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.

Les dictionnaires Python peuvent-ils être triés ?

Par exemple : dict = {'username' : 'xiaoming', 'password' : '123456'}, où 'username' et 'password' sont des clés, et « Xiaoming » et « 123456 » sont des valeurs. Vous pouvez obtenir la référence à la valeur correspondante via d[key], mais vous ne pouvez pas obtenir la clé via value.

Pour le dictionnaire, vous devez connaître les points suivants :

a La clé du dictionnaire est sensible à la casse

b. il ne peut pas y avoir de clés en double ;

c. Les dictionnaires ne sont pas ordonnés et n'ont aucune notion d'ordre des éléments. Ce ne sont que de simples arrangements de paires d'ordre.

Le dictionnaire est trié par clé/valeur :

Le dictionnaire lui-même n'a aucune notion d'ordre, mais il l'est toujours à un moment donné, mais nous avons souvent besoin de trier par dictionnaire

Méthode 1 : trier par valeur clé.

def sortedDictValues1(adict):
    items = adict.items()
    print "items:",items 
    items.sort()
    return [value for key, value in items]
adict = {"a1":11,"b1":2,"c1":30,"e1":20,"d1":4}
print sortedDictValues1(adict)
items: [('a1', 11), ('c1', 30), ('e1', 20), ('b1', 2), ('d1', 4)]
[11, 2, 30, 4, 20]
Copier après la connexion

La méthode items du dictionnaire renverra une liste de tuples, où chaque tuple contient une paire d'éléments - une clé et une valeur correspondante. Une liste de tuples peut être triée à l’aide de la méthode sort().

Méthode 2 : Trier par valeur clé

def sortedDictValues2(adict): 
    keys = adict.keys() 
    keys.sort() 
    return [dict[key] for key in keys]
Copier après la connexion

La méthode keys() de l'objet dictionnaire renvoie une liste de toutes les valeurs clés du dictionnaire, et le la commande est aléatoire. Lorsque vous avez besoin de trier, utilisez simplement la méthode sort() sur la liste de valeurs clés renvoyée, qui est plus rapide que la méthode 1.

Méthode 3 : Trier par valeur clé

def sortedDictValues3(adict): 
    keys = adict.keys() 
    keys.sort() 
    return map(adict.get, keys)
Copier après la connexion

Utilisez la méthode de mappage pour effectuer la dernière étape plus efficacement

Méthode 4 : Une Instruction de ligne

[(k,di[k]) for k in sorted(di.keys())]
Copier après la connexion

Méthode 5 : Trier par valeur

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))]
Copier après la connexion

Échangez d'abord la clé et la valeur de l'élément dans une liste, puis selon la liste chacun La première valeur de l'élément, c'est-à-dire la valeur d'origine, est triée :

Méthode 6 : Trier par valeur

[ v for v in sorted(di.values())]
Copier après la connexion

Méthode 7 : Utiliser la fonction triée key= tri des paramètres :

Trier par clé

print sorted(dict1.items(), key=lambda d: d[0])
Copier après la connexion

Trier par valeur

print sorted(dict1.items(), key=lambda d: d[1])
python内置sorted函数的帮助文档:
sorted(…)
sorted(iterable, cmp=None, key=None, reverse=False) –> new sorted list
Copier après la connexion

Méthode de tri par dictionnaire, en fait, leurs idées principales sont les mêmes , c'est-à-dire dictionnaire Les éléments de sont séparés en une liste et la liste est triée, triant ainsi indirectement le dictionnaire. Cet « élément » peut être une clé, une valeur ou un élément.

Méthode 8 : série COLLECTION de PYTHON - dictionnaire ordonné (ORDEREDDICT)

orderdDict est un complément au type de dictionnaire, qui préserve l'ordre dans lequel les éléments du dictionnaire sont ajoutés

import collections
dic = collections.OrderedDict()
dic["featureName"] = "f1"
dic["uId"] = "12345"
dic["value"] = "7"
print dic
#结果
#OrderedDict([('featureName', 'f1'), ('uId', '12345'), ('value', '7')])
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal