Menu
CoddyTech

Différence d’ensembles

Fait partie de la section Logique et flux d’exécution du Journey GDScript de Coddy. Leçon 35 sur 78.

La différence de deux ensembles contient les éléments du premier ensemble qui ne se trouvent pas dans le second. Parcours le premier ensemble et conserve les éléments absents du second :

var needed := {"rope": true, "torch": true, "map": true}
var packed := {"torch": true, "apple": true}
var missing := {}
for item in needed:
	if not packed.has(item):
		missing[item] = true
print(missing.keys()) # ["rope", "map"]

L’ordre des ensembles compte. La différence entre packed et needed est ["apple"] : ce que tu as emporté mais dont tu n’avais pas besoin.

Les deux différences réunies forment la différence symétrique : les éléments qui appartiennent à exactement l’un des ensembles. Ici, il s’agit de rope, map et apple.

Pour vérifier qu’il ne manque rien, has_all() prend un tableau et renvoie true lorsque chaque élément de celui-ci est une clé du dictionnaire :

print(packed.has_all(needed.keys())) # false : il manque la corde et la carte
challenge icon

Défi

Facile

Avant un voyage, tu compares ce dont tu as besoin avec ce que tu as emballé. Le programme lit deux lignes, les éléments nécessaires et les éléments emballés, séparés par des espaces, et le code de départ construit les ensembles needed et packed.

Affiche deux lignes, avec les éléments joints par , :

  • Missing: suivi des éléments nécessaires qui ne sont pas emballés
  • Extra: suivi des éléments emballés qui ne sont pas nécessaires

Conserve l’ordre de l’ensemble sur lequel tu itères. Affiche none plutôt qu’une liste vide. Pour l’entrée :

rope torch map
torch apple

la sortie est :

Missing: rope, map
Extra: apple

Essayez vous-même

extends Node

func _ready():
	var needed := {}
	for item in OS.read_string_from_stdin().split(" ", false):
		needed[item] = true
	var packed := {}
	for item in OS.read_string_from_stdin().split(" ", false):
		packed[item] = true

	# Calcule les deux différences

	# Affiche les résultats
quiz iconTestez-vous

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

Entraînez-vous par vous-même : Compilateur GDScript en ligne