112 votes

Comment convertir une liste en une map en Dart

Je cherche un moyen prêt-à-l'emploi pour convertir une liste en carte en Dart.

En python par exemple, vous pouvez faire :

l= [ ('a',(1,2)), ('b',(2,3)), ('c',(3,4) ) ]
d=dict(l)
==> {'a': (1, 2), 'c': (3, 4), 'b': (2, 3)}

La fonction dict attend une liste de couples. Pour chaque couple, le premier élément est utilisé comme clé et le second comme donnée.

En Dart, j'ai vu la méthode suivante pour une liste : asMap(), mais elle ne fait pas ce que j'attends : elle utilise l'index de la liste comme clé. Mes questions :

  • Savez-vous quelque chose dans les bibliothèques Dart pour faire cela ?
  • Si non, avez-vous prévu d'ajouter une telle fonctionnalité dans la librairie de base ?

Proposition :

List.toMap() //même que le dict python.
List.toMap( (value) => [ value[0], value[1] ] ) //Utilisation d'une fonction anonyme pour retourner une clé et une valeur à partir d'un élément de liste.

Merci et cordialement,

Nicolas

3voto

Achintha Isuru Points 63

Cela peut ne pas être directement pertinent pour la réponse mais, si quelqu'un veut convertir.

var list = ['fee','fi','fo','fum'];

à une carte comme,

var map = {0:'fee', 1:'fi', 2:'fo', 3:'fum'};

vous pouvez utiliser

var map = list.asMap();

PS

Cette carte n'est pas modifiable

0voto

Sean Eagan Points 1050

Il n'existe pas encore de concept de tuples ou de paires en dart (autre qu'un Iterable à deux éléments). Si Dart avait un tel concept, alors issue 7088 propose de résoudre cela avec un constructeur Map.fromPairs.

0voto

Voici comment vous pouvez convertir une liste en carte

void main() {
  var list = [99, 25, 45, 11, 5, 125, 50];
  SplayTreeMap numbers = new SplayTreeMap();
  numbers.addAll(list.asMap());
  print(numbers);
}

0voto

anas rokbi Points 321
List list = [Gomme, 0.95, Soda, 1.05, Chips, 1.99];
Map map1 = {};
for (int i = 0; i < list.length ; i += 2) {
   map1[list[i]] = list[i + 1];  }
print(map1);

La sortie sera:

{Gomme: 0.95, Soda: 1.05, Chips: 1.99}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X