2016-09-24 8 views
-1

ペアを含むリストをフィルタリングしようとしています。ペアのリストでスカラーのフィルタを使用する

例えば私のリストは

一覧です((1,2)、(3,4)、(5,2))

私は唯一の答えを含むようにリストをフィルタリングするフィルタを使用したいですペアの最初の数字は2番目の数字よりも大きい。これどうやってするの?

ので、結果のリストは

一覧になります((5,2))ペアの最初の数の

+1

あなたは少なくとも何かを試してみてください:

簡単にはペアを分解することです。 List.filterとペア(タプル)についてどこでも読むことができます。タプル:https://www.tutorialspoint.com/scala/scala_tuples.htm リストapi:http://www.scala-lang.org/api/2.10.3/#scala.collection.immutable.List – pedrorijo91

答えて

3

フィルターは、二以上である:

val ls = List((1,2),(3,4),(4,5),(6,2)) 
ls.filter(pair => pair._1 > pair._2) // List((6, 2)) 
+1

ありがとう君は!では、コードにペアを書くとき、スカラーが「ペア」とは何を知っていますか? ありがとうございます。あなたは何でも好きなことを呼ぶことができます。私が正しく理解していれば、リストの各ペアについて、最初の要素(_1)を見て2番目の要素(_2)と比較するだけです。 – Vandexel

+0

あなたは好きなものを呼び出すことができます。ペアは、タプル(正確にはタプル2)の一種です。 tuple_1、tuple_2、tuple_3などのようなタプルの要素を参照できます。例: 'val tuple =(10,11,12,13)// tuple._4 == 13' – Samar

3

あなたの例ではしていません意味がありますが、あなたはまだいくつかの述語であなたのリストをフィルタリングしたいと思います。

scala> val l = List((1,2), (3,4), (4,5)) 
l: List[(Int, Int)] = List((1,2), (3,4), (4,5)) 
scala> l.filter { case (a, b) => a > b } 
res0: List[(Int, Int)] = List() 
+0

申し訳ありませんが、私は条件を入れ替えました。サマールはそれを編集するのを助け、今更新されました。 – Vandexel

+0

私はここでは、一般に構造化アプローチを好んでおり、スタイルの問題として '_1'アクセサをほとんど使用しません。しかし、それぞれに自分自身! – acjay

関連する問題