gpt4 book ai didi

dictionary - 在给定 Kotlin 中的键列表的情况下切片 map

转载 作者:行者123 更新时间:2023-12-01 23:33:20 27 4
gpt4 key购买 nike

给定一张 map 和一个键列表

val abc = mapOf(1 to "a", 2 to "b", 3 to "c")
val keys = listOf(1, 2)

如何获取仅包含 keys 指定的键值对的映射?有点像

val ab = abc.slice(keys)
// equivalent to mapOf(1 to "a", 2 to "b)

我正在寻找比

更优雅的东西
val ab = listOf(1, 2).map { it to abc[it] }.toMap()

例如,在 Elixir 中:

abc = %{1 => "a", 2 => "b", 3 => "c"}
ab = Map.take(abc, [1, 2])
# equivalent to ab = %{1 => "a", 2 => "b"}

最佳答案

您可以使用 filterKeys :

val ab = abc.filterKeys { it in keys }

因为它是 Kotlin,您甚至可以定义自己的 extension function实现您的想象:

fun <T> Map<T, *>.slice(keys: Iterable<T>) = filterKeys { it in keys }

val ab = abc.slice(keys)

关于dictionary - 在给定 Kotlin 中的键列表的情况下切片 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65939282/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com