gpt4 book ai didi

scala - 在 Scala 中,是否可以压缩两个不同大小的列表?

转载 作者:行者123 更新时间:2023-12-03 21:07:35 25 4
gpt4 key购买 nike

例如假设我有

val letters = ('a', 'b', 'c', 'd', 'e')
val numbers = (1, 2)

是否可以生成列表
(('a',1), ('b',2), ('c',1),('d',2),('e',1))

最佳答案

您的字母和数字是元组,而不是列表。所以让我们解决这个问题

scala> val letters = List('a', 'b', 'c', 'd', 'e')
letters: List[Char] = List(a, b, c, d, e)

scala> val numbers = List(1,2)
numbers: List[Int] = List(1, 2)

现在,如果我们压缩它们,我们不会得到想要的结果
scala> letters zip numbers
res11: List[(Char, Int)] = List((a,1), (b,2))

但这表明如果数字无限重复,那么问题就会解决
scala> letters zip (Stream continually numbers).flatten
res12: List[(Char, Int)] = List((a,1), (b,2), (c,1), (d,2), (e,1))

不幸的是,这是基于数字比字母短的知识。所以要解决这一切
scala> ((Stream continually letters).flatten zip (Stream continually numbers).flatten take (letters.size max numbers.size)).toList
res13: List[(Char, Int)] = List((a,1), (b,2), (c,1), (d,2), (e,1))

关于scala - 在 Scala 中,是否可以压缩两个不同大小的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8621902/

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