Dynamo – Différence entre  » list » et « Dictionary »

list & dictionaryProblématique

Les « List » et « Dictionary » sont deux structures qui permettent de stocker des variables ou objets dans Dynamo. Pourquoi utiliser l’un plutôt que l’autre ?

Solution

Une liste est une structure ordonnée qui accepte un type de variable ou d’objet unique. Il est donc impossible de mélanger plusieurs types de données au sein d’une même liste. Chaque élément de la liste possède un index qui est représenté par un nombre entier. Les index ne sont pas modifiables et le premier index de la liste est toujours 0.

Un dictionnaire, quant à lui, est une structure non ordonnée qui accepte des types de variable et d’objets pluriels. Cela signifie que les clefs qui permettent d’accéder aux valeurs du dictionnaire ne sont pas organisées, c’est pourquoi dans Dynamo ce sont des chaînes de caractères et non des nombres entiers comme dans le cas des listes. Un dictionnaire peut contenir tout type de variable.

modifyAvantage des listes :

Le type de variable contenue dans une liste est unique. Par conséquent, il est possible de boucler sur une liste dans Dynamo pour appliquer une méthode sur chaque élément et ce dans l’ordre des indices. Les opérations sur les listes conservent donc l’organisation des données et il est facile d’itérer dessus. Dynamo le fait d’ailleurs automatiquement. Même si la structure d’une liste est relativement figée, cette organisation est toutefois modifiable par de nombreux nœuds dans Dynamo.

Désavantage des listes :

Il peut être pénible d’extraire des valeurs précises d’une liste, car cela implique de la parcourir entièrement et de tester chaque élément pour savoir si on le conserve ou non. Cela impacte le temps de calcul et alourdit le script. Il est également compliqué, mais néanmoins faisable, de supprimer un d’ajouter une valeur à un index précis.

Avantage des dictionnaires :

On utilise ceux-ci plus rarement. Ils sont utiles dans le cas où les couples clefs/valeurs ont un réel intérêt à être associés. Là où le but d’une liste est de simplement stocker un jeu de données, le dictionnaire stocke une association de données. Ceci permet de consulter n’importe quelle valeur si l’on en connait la clef correspondante. L’utilisation des clefs permet d’ajouter ou de supprimer des données au dictionnaire très facilement, là où l’organisation de la liste est bien plus restrictive.

Désavantages des dictionnaires :

Sachant que les valeurs contenues peuvent être de nature quelconque, il est impossible d’itérer (dans Dynamo) sur un dictionnaire. On est obligé d’extraire les valeurs, de les traiter lorsqu’elles sont sous forme de liste, puis de recréer le dictionnaire modifié. Cela est dû au fait que les clefs ne forment pas un ensemble orgainsé avec un début et une fin sur lequel on peut boucler avec Dynamo. L’ordre d’affichage des couples clefs/valeurs des nœuds retournant des dictionnaires et d’ailleurs variable.

noeuds

Dans l’exemple ci-dessus on remarque que Dynamo décompte le nombre d’indices de la liste {3} et il identifie la structure étagée de celle-ci avec les repères @L2 @L1. Cette organisation est totalement absente dans le cas du dictionnaire.

Print Friendly, PDF & Email

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *