从每个元组中获取一个随机字母,然后将它们全部作为字符串返回

时间:2017-03-23 05:33:33

标签: scala

列表中的3个元组

val l = List(("a","b"),("c","d"),("e","f"))

从每个元组中选择一个元素然后每次返回这个3个字母的单词

例如:fca或afd或cbf ...

如何实现它

与:

相同
echo {a,b}{c,d}{e,f}|xargs -n1|shuf -n1|sed 's/\B/\n/g'|shuf|paste -sd ''

1 个答案:

答案 0 :(得分:1)

使用元组可能会有点痛苦。您不能轻易地为它们编制索引,并且在类型系统中将不同大小的元组视为不同的类型。

val ts = List(("a","b"),("c","d"),("e","f"))
val str = ts.map{t =>
  t.productElement(util.Random.nextInt(t.productArity))
}.mkString("")

每次运行此操作时,我都会得到不同的结果:bdeacfbdf等。