List-6ren">
gpt4 book ai didi

Scala:创建一个新列表,其中每个元素都是用不同后缀重复的旧列表的元素

转载 作者:行者123 更新时间:2023-12-04 22:07:45 25 4
gpt4 key购买 nike

这看起来应该很简单,但我不能完全把它放在一起。我想获取一个字符串列表并创建一个新列表,其中包含第一个列表中每个元素的两个但具有不同的后缀。所以:

List("a", "b", "c") -> List("a_x", "a_y", "b_x", "b_y", "c_x", "c_y"

我试过了

val list2 = list1.map(i=> i+"_x", i+"_y")

但是 scala 说我的论点太多了。这很接近:

 val list2 = list1.map(i=> (i+"_x", i+"_y")) 

但它产生了 List(("a_x", "a_y"), ("b_x", "b_y"), ("c_x", "c_y")) 这不是我想要的。我确信我遗漏了一些明显的东西。

最佳答案

你想要 flatMap,首先映射,然后将结果的结构展平成一个平面列表。每个单独的结果本身必须是一个集合(而不是元组):

scala> List("a", "b", "c").flatMap(i => List(i + "-x", i + "-y"))
res0: List[String] = List(a-x, a-y, b-x, b-y, c-x, c-y)

关于Scala:创建一个新列表,其中每个元素都是用不同后缀重复的旧列表的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27127853/

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