我有一个字符串列表
List("cbda","xyz","jlki","badce")
我想对字符串进行排序,使得奇数长度字符串按降序排序,甚至长度字符串按升序排序
List("abcd","zyx","ijkl","edcba")
现在我已经通过分别迭代每个元素,然后找到它们的长度并相应地对它们进行排序来实现它。最后我将它们存储在单独的列表中。我希望知道在Scala中是否有任何其他有效的方法可以做到这一点,或者更简单的方法(比如我们在Python中使用的某种列表推导)?
答案 0 :(得分:2)
您可以使用sortWith和map:
来完成list.map(s => {if(s.length % 2 == 0) s.sortWith(_ < _) else s.sortWith(_ > _)})
答案 1 :(得分:0)
我不确定你在Python中引用了什么,所以如果下面的例子与你的期望不符,细节会有所帮助
第一个,让你两次浏览列表:
List("cbda","xyz","jlki","badce").map(_.sorted).map {
case even if even.length % 2 == 0 => even
case odd => odd.reverse
}
或者让你经历两次偶数长度的元素:
List("cbda","xyz","jlki","badce").map {
case even if even.length % 2 == 0 => even.sorted
case odd => odd.sorted.reverse
}