推荐答案
在 Kotlin 中,zip 和 unzip 是用于处理集合的函数。
zip 函数
zip 函数用于将两个集合合并为一个包含成对元素的列表。每个元素对由两个集合中相同位置的元素组成。
val list1 = listOf(1, 2, 3)
val list2 = listOf("a", "b", "c")
val zipped = list1.zip(list2)
println(zipped) // 输出: [(1, a), (2, b), (3, c)]unzip 函数
unzip 函数用于将一个包含成对元素的列表拆分为两个列表,分别包含每对元素的第一个和第二个元素。
val pairs = listOf(1 to "a", 2 to "b", 3 to "c") val (numbers, letters) = pairs.unzip() println(numbers) // 输出: [1, 2, 3] println(letters) // 输出: [a, b, c]
本题详细解读
zip 函数详解
zip 函数接受两个集合作为参数,并返回一个包含成对元素的列表。如果两个集合的长度不同,结果列表的长度将与较短的集合相同。
val list1 = listOf(1, 2, 3, 4)
val list2 = listOf("a", "b", "c")
val zipped = list1.zip(list2)
println(zipped) // 输出: [(1, a), (2, b), (3, c)]unzip 函数详解
unzip 函数接受一个包含成对元素的列表,并返回两个列表。第一个列表包含所有对的第一个元素,第二个列表包含所有对的第二个元素。
val pairs = listOf(1 to "a", 2 to "b", 3 to "c") val (numbers, letters) = pairs.unzip() println(numbers) // 输出: [1, 2, 3] println(letters) // 输出: [a, b, c]
使用场景
zip函数常用于需要将两个集合的元素一一对应处理的场景。unzip函数常用于需要将成对元素拆分为两个独立集合的场景。
注意事项
- 使用
zip时,如果两个集合的长度不同,结果列表的长度将与较短的集合相同。 unzip函数只能用于包含成对元素的列表,否则会抛出异常。