におけるタプルのリストをループ?は私が</p> <pre><code>List[(String, Object)] </code></pre> <p>どのように私はこのリストをループ<code>for</code>を使用することができ、以下のようなサンプル<code>List</code>を持ってScalaの
私は
for(str <- strlist)
のようなが、上記の2Dリストのために何かをしたいです。 str
のプレースホルダは何ですか?
におけるタプルのリストをループ?は私が</p> <pre><code>List[(String, Object)] </code></pre> <p>どのように私はこのリストをループ<code>for</code>を使用することができ、以下のようなサンプル<code>List</code>を持ってScalaの
私は
for(str <- strlist)
のようなが、上記の2Dリストのために何かをしたいです。 str
のプレースホルダは何ですか?
ループを使用してコレクションを繰り返し処理するのではなく、map、filter、foldまたはforeach(必要に応じて)を使用することをお勧めします。
編集1: 例えば あなたは、いくつかのブール条件
val newList=oldList.filter(tuple=>someCondition(tuple))
または単にに応じてフィルタ処理したい場合は、各要素
val newList=oldList.map(tuple=>foo(tuple))
val tupleStrings=tupleList.map(tuple=>tuple._1) //in your situation
にいくつかのFUNC fooの(タプル)を適用する場合あなたのリストを印刷したい場合
oldList.foreach(tuple=>println(tuple)) //assuming tuple is printable
y OUは、ここにある
for ((s,o) <- list) yield f(s,o)
あなたはちょうどあなたがこのようなタプルのリストの上にマッピングすることができ、文字列を取得したい場合:
// Just some example object
case class MyObj(i: Int = 0)
// Create a list of tuples like you have
val tuples = Seq(("a", new MyObj), ("b", new MyObj), ("c", new MyObj))
// Get the strings from the tuples
val strings = tuples.map(_._1)
// Output: Seq[String] = List(a, b, c)
注:タプルメンバーは は1からインデックス付けされた、アンダースコア記法を(使用してアクセスされ、 0以外)
for
と同様の機能を見つけることができます:予想されるタイプが必要です1つの引数をとる関数は2タプルを受け入れます。 コードをコピーし{ case (id, name) => ... }
簡単、無名関数をパターンマッチングを考えてみましょう:
val fruits: List[(Int, String)] = List((1, "apple"), (2, "orange"))
fruits.foreach {
case (id, name) => {
println(s"$id is $name")
}
}
、
scala> val fruits: List[(Int, String)] = List((1, "apple"), (2, "orange"))
fruits: List[(Int, String)] = List((1,apple), (2,orange))
scala>
scala> fruits.foreach {
| case (id, name) => {
| println(s"$id is $name")
| }
| }
1 is apple
2 is orange
注意を例とあなたはタプルの要素を抽出することができ、ここで
https://twitter.github.io/scala_school/collections.html
することはでき '用(STR <と'一覧[(文字列、オブジェクト)] 'の文字列をループ - リスト.map(_._ 1)) 'または' for((str、_)< - list) 'となります。 –
"2d"リストではありません。 1次元のリストで、各要素はペアです。では、ループスルーとはどういう意味ですか?順番に各ペアを取得するか、それとも別のものを取得しますか? –