0
votes

Trier une liste par sa valeur respective dans un dictionnaire séparé?

Dis que j'ai un dictionnaire et certaines des touches sont des valeurs dans une matrice distincte, comment résoudre les valeurs dans ma matrice par les valeurs de leurs clés respectives dans le dictionnaire?

Par exemple:

entrée: xxx

sortie: xxx

L'ordre des valeurs dans la matrice de sortie serait "D "Tout d'abord, sa valeur dans le dictionnaire était la plus faible (1). Suivi de "A" (4) et "B" (7). J'ai délibérément pas inclus "C" dans le tableau.

Je ne demande pas de résoudre ce algorithmique

Je demande s'il y a une simple façon intégrée de le faire, telle que en utilisant trié (tableau, touche =) fonction de type.


0 commentaires

3 Réponses :


2
votes

Qu'est-ce que je pense que vous demandez:

>>> d = {'a': 4, 'b': 7, 'c': 10, 'd': 1} 
>>> a = ['a', 'b', 'd']
>>> sorted(a, key=d.get)
['d', 'a', 'b']


0 commentaires

0
votes

Oui, vous pouvez utiliser une fonction Lambda qui renvoie la valeur d'un élément correspondant dans votre dictionnaire.
Au fait, je pense que ce n'est pas une bonne pratique d'utiliser le mot «dict» pour les noms variables car il s'agit d'un mot intégré à Python. xxx


0 commentaires

0
votes

Vous pouvez essayer ceci: dict = {'A': 4, 'B': 7, 'C': 10, 'D': 1} Array = ["A", "B", "D"]

new_dict = sorted(dict.items(), key=lambda x: x[1])

output_array = []
for key, value in new_dict:
    check_values = key in array
    if(check_values == True):
        output_array.append(key)

print(output_array)`


0 commentaires