Sorte de hachage en valeur et de la clé (dans cet ordre)
Je suis à la recherche d'une belle façon de trier une table de hachage en Perl par valeur et par clé par la suite.
Exemple:
my %userids = (
williams => "Marketing",
smith => "Research",
johnson => "Research",
jones => "Marketing",
brown => "Marketing",
davis => "Research"
);
De sortie:
Marketing: brown
Marketing: jones
Marketing: williams
Research: davis
Research: johnson
Research: smith
Veuillez noter que valeur a été le premier tri. Deuxième tri niveau est clé. Une idée de comment faire cela dans un cadre élégant et de haute performance? Merci!
OriginalL'auteur TechnoCore | 2011-10-17
Vous devez vous connecter pour publier un commentaire.
Bonne référence: http://www.misc-perl-info.com/perl-sort.html#shv
OriginalL'auteur sehe
Je voudrais ajouter une chose de plus, l'utilisation
\L sequence
dans le tri.De Perlfaq4: Comment puis-je trier une table de hachage (éventuellement par valeur au lieu de la clé)?
Pour faire notre rapport à l'ordre de la casse, nous utilisons la
\L sequence
dans une chaîne entre guillemets pour faire tout en minuscules. Lesort()
bloc compare ensuite la lowercase valeurs pour déterminer l'ordre dans lequel mettre les clés.De sortie :
2.
De sortie:
oui, c'est vrai que les touches de toujours être unique dans la table de hachage, ne contiennent jamais d'équivalent de deux touches, mais vous pouvez voir la différence dans la production.
Je peux voir la différence en sortie. C'est pourquoi je pense que ce serait une chose étrange à faire: il viole la principe de moindre surprise de mon point de vue
Rarement peut arriver, mais je pensait que ce serait bien d'ajouter 🙂
+1 pour la bonne explication et un exemple de sortie
OriginalL'auteur Nikhil Jain