我是Scala的新手。我有一个元组列表。我希望能够将列表的最后一个元素更改为(x, y + 1)
,然后将所有其他元素映射到下一个元素。
val l1: List[(Int, Int)] = List((0,0), (0,1), (0,2), (0,3))
所以我需要列表l2
,该列表在映射后应包含元素(0,1), (0,2), (0,3), (0,4)
任何帮助将不胜感激
答案 0 :(得分:3)
模拟 Andronicust 答案我更喜欢这种风格:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
因此您可以在对上进行模式匹配并为元素指定适当的名称。
与l1.map{ case (x, y) => (x, y + 1) }
等相反。
答案 1 :(得分:2)
您可以这样映射列表:
l1.map(t => (t._1, t._2 + 1))
这会将列表中的每个元组映射为元组,第一个元素不变,第二个元素加一。
结果:
列表((0,1),(0,2),(0,3),(0,4))
答案 2 :(得分:2)
Parameter Untupling可能会提供以下语法,而我们不再需要使用模式匹配或._1
语法
l.map((x, y) => (x, y + 1))