Créez une liste pour chaque élément présent dans une liste.Chers tous,
Essayer de créer une liste pour chaque élément présent dans une liste.
J'ai déjà,
Liste maîtresse = {"test1", "test2"} ;
Requis,
Ajoutez la chaîne « valeur » à chaque élément présent dans la MasterList et devez faire de chaque élément une liste individuelle.
valeur test1 = {} ;
valeur test2 = {} ;
Merci, Alex.
Ingénierie Qualité et Procédésles fenêtresRe : Créer une liste pour chaque élément présent dans une liste.Juste un petit point : en utilisant Eval( Parse( Eval Insert( ... ) ) ) peut être quelque peu fastidieux et lent (même si le ralentissement n'est apparent qu'avec un grand nombre d'appels).Vous pouvez l'éviter en accédant directement à l'espace de noms "ici", comme suit :
Names Default To Here( 1 );
MasterList = {"test1", "test2"};
here = Namespace( "here" );
// many variables containing lists
For Each( {item}, Masterlist, here[item || "value"] = {} );
Show( test1value, test2value );Re : Créer une liste pour chaque élément présent dans une liste.Approche légèrement différente utilisant un tableau associatif :
Names Default To Here( 1 );
MasterList = {"test1", "test2"};
// associative array containing lists
Master_AA = Associative Array();
for (i = 1, i <= nitems(masterlist), i++,
one_key = masterlist[i];
master_aa[one_key] = {};
);
// Load the lists with some data
insertinto(master_aa["test1"], {1, 2, 3});
insertinto(master_aa["test2"], {4, 5, 6});
print(master_aa);
Sortir:
["test1" => {1, 2, 3}, "test2" => {4, 5, 6}]Re : Créer une liste pour chaque élément présent dans une liste.Merci Georg et Mark !!
Les deux solutions ont fait l'affaire !!
Re : Créer une liste pour chaque élément présent dans une liste.Excellente idée de Mark.
Cela peut ressembler à ceci dans votre cas. Vous pouvez gérer efficacement de nombreuses listes dans un tableau associatif.
Names Default To Here( 1 );
MasterList = {"test1", "test2"};
// many variables containing lists
For Each( {item}, Masterlist, Eval( Parse( Eval Insert( "^item^value= {};" ) ) ) );
Show( test1value, test2value );
// associative array containing lists
Master_AA = Associative Array();
For Each( {item, index}, Masterlist, Master_AA[Masterlist[index] || "value"] = {} );<BR />Master_AA["test1value"] = {1, 2, 3};
For Each( {key}, Master_AA, Show( key, Master_AA[key] ) );Re : Créer une liste pour chaque élément présent dans une liste.Vous voudrez peut-être utiliser Tableaux associatifs au lieu de listes.
Re : Créer une liste pour chaque élément présent dans une liste.Cela aide probablement
Names Default To Here( 1 );
MasterList = {"test1", "test2"};
For Each( {item}, Masterlist, Eval( Parse( Eval Insert( "^item^value= {};" ) ) ) );
Show( test1value, test2value );