假设我在 dart 中有以下地图:
Map f = {
0 : 0,
1 : 1,
2 : 0,
3 : 1,
4 : 0,
5 : 1
};
Run Code Online (Sandbox Code Playgroud)
飞镖中有什么东西可以让您轻松处理地图的逆映射f?因此,例如,在这种情况下,逆映射f?¹[0](以数学符号表示)应该等于集合0, 2, 4。
如果值是唯一的,那么它只是:
Map inverse(Map f) {
return f.map( (k, v) => MapEntry(v, k) );
}
Run Code Online (Sandbox Code Playgroud)
它不会抱怨重复,它会覆盖它们。
Map f = {
0 : 0,
1 : 1,
2 : 0,
3 : 1,
4 : 0,
5 : 1
};
main() {
print(f.keys.where((k) => f[k] == 0));
// or
print(new Map.fromIterable(f.values.toSet(),
key: (k) => k,
value: (v) => f.keys.where((k) => f[k] == v)));
}
Run Code Online (Sandbox Code Playgroud)
尝试DartPad
| 归档时间: |
|
| 查看次数: |
1718 次 |
| 最近记录: |