如何在Dart中将列表转换为地图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Dart中将列表转换为地图相关的知识,希望对你有一定的参考价值。

我正在寻找现成的方法将列表转换为Dart中的Map。

例如,在python中,您可以这样做:

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

dict函数需要一个夫妻列表。对于每对夫妇,第一个元素用作键,第二个元素用作数据。

在Dart中,我看到了List的以下方法:asMap(),但它没有达到我的期望:它使用列表索引作为键。我的问题:

  • 您在Dart库中知道什么可以做到这一点吗?
  • 如果没有,是否有计划在核心库中添加这样的功能?

建议:

List.toMap() //same as python dict.
List.toMap( (value) => [ value[0], value[1] ] ) //Using anonymous function to return a key and a value from a list item.

感谢和问候,

尼古拉斯

答案

您可以使用Map.fromIterable

var result = Map.fromIterable(l, key: (v) => v[0], value: (v) => v[1]);

collection-for(从Dart 2.3开始):

var result = { for (var v in l) v[0]: v[1] };
另一答案

在Dart 1.1中,您可以使用Map的this constructor

new Map.fromIterable(list, key: (v) => v[0], value: (v) => v[1]);

这将是最接近您的原始提案。

另一答案

[dart中没有元组或成对的概念(两个元素Iterable除外)。如果Dart有这样的概念,则issue 7088建议使用Map.fromPairs构造函数解决此问题。

以上是关于如何在Dart中将列表转换为地图的主要内容,如果未能解决你的问题,请参考以下文章

在颤动中将地图列表转换为步进器?

如何在 Dart 中将日期/时间字符串转换为 DateTime 对象?

在java 8中将地图映射转换为单个值列表[关闭]

如何在Dart中将UTF-8字符串转换为字节数组?

如何在 Dart/Flutter 中将数字从 20,95 转换为 20.95?

Flutter Dart:如何使用 2 个键将 List 转换为 Map