Comment déterminez-vous si toutes les clés de hachage ont une certaine valeur?Comment trouver toutes les clés dans un hachage ont une valeur en Perl
Répondre
De perldoc -f exists
:
print "Exists\n" if exists $hash{$key};
print "Defined\n" if defined $hash{$key};
print "True\n" if $hash{$key};
print "Exists\n" if exists $array[$index];
print "Defined\n" if defined $array[$index];
print "True\n" if $array[$index];
Un élément de hachage ou d'un tableau peut être vrai que si elle est définie et définie si elle existe, mais l'inverse ne tenir nécessairement vrai.
existe et supprimer sur les éléments de tableau ont des propriétés intéressantes et pas toujours utiles. Si vous en avez vraiment besoin, il vaut mieux utiliser un hash. – ysth
Si la clé existe, il a une valeur (même si cette valeur est undef
) si:
my @keys_with_values = keys %some_hash;
Flux le résultat de keys en grep avec defined
my @keys_with_values = grep { defined $hash{$_} } keys %hash;
Relire votre question, il semble que vous essayez de savoir si l'une des valeurs dans votre hachage sont indéfinies, auquel cas vous pourriez dire quelque chose comme
my @keys_without_values = grep { not defined $hash{$_} }, keys %hash;
if (@keys_without_values) {
print "the following keys do not have a value: ",
join(", ", @keys_without_values), "\n";
}
Votre question est incomplète donc ce code peut être la réponse ;-)
my %hash = (
a => 'any value',
b => 'some value',
c => 'other value',
d => 'some value'
);
my @keys_with_some_value = grep $hash{$_} eq 'some value', keys %hash;
EDIT: j'avais relu question à nouveau et a décidé que la réponse peut être:
sub all (&@) {
my $pred = shift();
$pred->() or return for @_;
return 1;
}
my $all_keys_has_some_value = all {$_ eq 'some value'} values %hash;
Si tout ce que vous voulez est de savoir si toutes les valeurs sont définies, ou tout indéfini, cela fera:
sub all_defined{
my($hash) = @_;
for my $value (values %$hash){
return '' unless defined $value; # false but defined
}
return 1; #true
}
Voici une autre façon, en utilisant each. TIMTOWDI
while (my($key, $value) = each(%hash)) {
say "$key has no value!" if (not defined $value);
}
- 1. Comment trouver les clés d'un hachage?
- 2. Comment puis-je trouver la plus petite valeur dans un hachage Perl de hachages de tableaux?
- 3. Comment remplacer une clé de hachage Perl?
- 4. Comment transmettre un hachage à une fonction en Perl?
- 5. Comment puis-je auto-incrémenter une valeur de hachage Perl?
- 6. Comment stocker un tableau 2d dans un hachage en Perl?
- 7. Comment puis-je utiliser un tableau existant comme valeur dans un hachage en Perl?
- 8. Comment trouver toutes les initialisations dans un texte?
- 9. Comment puis-je supprimer les sept derniers caractères d'une valeur de hachage en Perl?
- 10. trouver toutes les valeurs en double dans un attribut d'élément
- 11. Comment convertir toutes les clés d'une matrice multidimensionnelle en snake_case?
- 12. Comment trouver toutes les correspondances de '{{**** *** **}}' avec une regex?
- 13. Rechercher hachage dans un tableau par valeur
- 14. Comment puis-je créer un hachage de hachages en Perl?
- 15. Comment charger un fichier dans un hachage Perl?
- 16. Comment puis-je utiliser un tableau comme valeur de hachage en Perl?
- 17. Comment rechercher une valeur spécifique dans les clés de registre
- 18. Comment trier par valeur à partir d'un hachage de second niveau, en Perl?
- 19. Quelle est la meilleure façon de copier en profondeur un hachage de hachage en Perl?
- 20. Comment obtenir toutes les tables qui ont des FK dans une autre table?
- 21. Comment référencer un scalaire dans une référence de hachage en Perl?
- 22. Trouver toutes les majuscules dans les colonnes?
- 23. Comment vérifier si une clé existe dans un hachage en Perl?
- 24. Comment créer et accéder à un hachage Perl avec des clés scalaires dont les valeurs sont des tableaux?
- 25. Comment puis-je trouver toutes les méthodes qui ont des paramètres spécifiques avec réflexion?
- 26. Trouver ce que les clés de registre ont été modifiés C#
- 27. Comment trouver toutes les clés de propriétés d'un objet Objective-C compatible KVC?
- 28. Comment puis-je récupérer une valeur de hachage Perl uniquement si sa clé existe?
- 29. Trouver toutes les fonctionnalités dans Lucene
- 30. Existe-t-il une fonction PHP pour supprimer toutes les paires clé/valeur ayant une certaine valeur dans un tableau?
Qu'est-ce que cela signifie "avoir une certaine valeur"? s'il y a une clé, il y a une valeur. la valeur peut être undef, mais c'est toujours une valeur. Que voulez-vous vérifier? –