我正在寻找一种现成的方法来将一个列表转换为 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()**,但它没有做我期望的事情:它使用列表索引作为关键字。我的问题:
- 你知道达特图书馆里有什么东西可以做这个吗?
- 如果没有,有没有计划在核心库中添加这样的特性?
提议:
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.
感谢并问候您!
尼古拉
9条答案
按热度按时间ac1kyiln1#
您可以使用Map.fromIterable:
或 * 收集对象 *(从Dart 2.3开始):
50few1ms2#
在Dart 1.1中,可以使用Map的构造函数:
这将是最接近你原来的建议。
i7uaboj43#
对于Dart 2.3及更高版本,
解决办法有很多,但最简单的是:
asMap()
函数**for-in
集合**Map map = {};
希望能有所帮助。
8fsztsew4#
另一种可能是使用
Map.fromEntries()
构造函数:rt4zxlrg5#
详情
溶液
/libs/扩展名/列表. dart
用法
eqqqjvef6#
这可能不直接相关的答案,但是,如果有任何人想转换。
到一张Map,
您可以使用
附言
此Map不可编辑
zxlwwiss7#
dart中还没有元组或对的概念(除了两个元素的Iterable)。如果Dart有这样的概念,那么issue 7088建议用Map.fromPairs构造函数来解决这个问题。
q5lcpyga8#
这是如何你可以转换列表到Map
c9x0cxw09#
输出将为: