如何将列表值转换为Key,值格式?

时间:2018-05-18 17:53:09

标签: scala

输入

(1: 2)

(5: 6)

(2: 4)

预期产出

 val res = input.map(x => println(x(0)+ " "+x(1)+" "+x(2)+" " +x(3)))

我尝试使用以下代码

1 2 3 4
5 6 6 8
2 4 5 0

它变得像这样

<Window x:Class="WpfApp1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Title="MainWindow" Height="450" Width="800">
<Grid>
    <Image Source="https://placehold.it/500x500" RenderOptions.BitmapScalingMode="HighQuality"  />
</Grid>

2 个答案:

答案 0 :(得分:0)

您可以组合模式行进和字符串插值:

val result = input.map {
    case key :: values => s"$key: ${values.mkString(",")}"
}.mkString("\n")

println(result)
  • case key :: values匹配列表的第一个元素(您的密钥)和列表中的其余元素(您的值)。
  • mkString(separator)使用给定的分隔符将列表的元素连接成一个字符串。

答案 1 :(得分:0)

您可以遵循此方法

val input = List(List(1, 2, 3, 4),List(5, 6, 6, 8),List(2,4,5,0))

val res0 = input.map(x => x match
{case y :: ys => (y -> ys) }
).toMap


val res1 = res0.foreach{x => println(x._1 + ": " + x._2.mkString(","))}

res1将打印输出

1: 2,3,4
5: 6,6,8
2: 4,5,0
res1: Unit = ()

如果这回答了你的问题,请告诉我。