Union et intersection
Fait partie de la section Logique et flux d’exécution du Journey GDScript de Coddy. Leçon 34 sur 78.
Deux ensembles peuvent être combinés de deux façons courantes :
- L’union contient tous les éléments qui appartiennent à l’un ou l’autre des ensembles.
- L’intersection contient uniquement les éléments qui appartiennent aux deux ensembles.
GDScript n’a pas d’opérateurs pour ces opérations, alors tu les construis avec des boucles. Pour l’union, ajoute les éléments des deux ensembles à un nouvel ensemble. Un élément présent dans les deux ensembles se retrouve sur la même clé :
var mia := {"forest": true, "cave": true}
var leo := {"cave": true, "tower": true}
var either := {}
for place in mia:
either[place] = true
for place in leo:
either[place] = true
print(either.keys()) # ["forest", "cave", "tower"]Comme chaque valeur est true, merged() donne la même union en un seul appel : var either := mia.merged(leo). Elle renvoie un nouveau dictionnaire et laisse mia inchangé.
Pour l’intersection, parcourez un ensemble et conservez les éléments présents dans l’autre ensemble :
var both := {}
for place in mia:
if leo.has(place):
both[place] = true
print(both.keys()) # ["cave"]Lorsque les ensembles n’ont aucun élément en commun, leur intersection est vide et both.keys() vaut [].
Défi
FacileDeux joueurs ont chacun débloqué quelques compétences. Le programme lit deux lignes, les compétences du premier joueur et celles du deuxième joueur, séparées par des espaces, et le code de départ construit les ensembles first et second.
Affiche l’union et l’intersection des deux ensembles, en joignant les éléments avec , :
All skills:suivi de l’union : les compétences du premier joueur, puis les nouvelles compétences du deuxième joueurShared skills:suivi de l’intersection, dans l’ordre du premier joueur, ounones’ils n’ont aucune compétence en commun
Pour l’entrée :
jump dash
dash swimla sortie est :
All skills: jump, dash, swim
Shared skills: dashEssayez vous-même
extends Node
func _ready():
var first := {}
for skill in OS.read_string_from_stdin().split(" ", false):
first[skill] = true
var second := {}
for skill in OS.read_string_from_stdin().split(" ", false):
second[skill] = true
# Construire l’union et l’intersection
# Afficher les résultats
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique et flux d’exécution
1Les chaînes de caractères en profondeur
Méthodes des chaînesRechercher dans les chaînesRemplacer et supprimer les espacesDécouper et joindreRécapitulatif - Vérifier un nom d’utilisateur4Dictionnaires, partie 2
Dictionnaires imbriquésTableaux de dictionnairesFusionner des dictionnairesCopier des dictionnairesRécapitulatif - Compteur de fréquence7Énumérations
Qu’est-ce qu’une énumération ?Définir une énumérationValeurs d’une énumérationÉnumérations avec matchRécapitulatif - Feu de circulation10Fonctions avancées
Renvoyer plusieurs valeursFonctions lambda, partie 1Fonctions lambda, partie 2Récapitulatif - Tri avec lambdaFonctions récursives, partie 1Fonctions récursives, partie 2Récapitulatif - Somme d’un tableau imbriqué13Système de gestion des stocks
Présentation du projetAjouter un article2Prise de décision avancée
Correspondance avec des variablesGardes de correspondanceMotifs de tableauMotifs de dictionnaireVérifications d’appartenanceRécapitulatif – Analyseur de commandes5Application de carnet d’adresses
Afficher le menuAjouter un contact8Gestionnaire des dossiers étudiants
Aperçu du projetAjouter un étudiant3Tableaux multidimensionnels
Bases des tableaux 2DAccéder aux éléments d’un tableau 2DBoucles imbriquées avec des tableaux 2DRécapitulatif - Tableaux 2DTableaux irréguliersMotifs courants des tableaux 2DRécapitulatif - Plateau de jeu6Les ensembles avec les dictionnaires
Qu’est-ce qu’un ensemble ?Un dictionnaire comme ensembleAjouter et supprimerUnion et intersectionDifférence d’ensemblesRécapitulatif – Supprimer les doublons9Agrégation avancée de données
Additionner des valeursTrouver le minimum et le maximumTri personnaliséRécapitulatif - Trieur de dictionnairesEntraînez-vous par vous-même : Compilateur GDScript en ligne