2

リストがList(1,2,3,4)あり、1つの要素を削除してすべてのサブリストを取得できるようにします。

List(2,3,4)
List(1,3,4)
List(1,2,4)
List(1,2,3)

これを行う最も簡単な方法は何ですか?

4

3 に答える 3

3

「リスト内の各位置を除外する」という意味であれば、次のようになります。

val x = List(1,2,3,2)

x.indices.map(i => x.take(i) ++ x.drop(i+1))
// List(2, 3, 2)      // skipped index 0
// List(1, 3, 2)      // skipped index 1
// List(1, 2, 2)      // skipped index 2
// List(1, 2, 3)      // skipped index 3

「リスト内の一意の要素をそれぞれ除外する」という意味であれば、次のようになります。

x.distinct.map(e => x.filter(_ != e))
// List(2, 3, 2)      // filtered out 1s
// List(1, 3)         // filtered out 2s
// List(1, 2, 2)      // filtered out 3s
于 2012-05-15T15:16:17.457 に答える
3
List(1, 2, 3, 4).combinations(3).toList

または、より一般的には、

list.combinations(list.size - 1) // use the Iterator -- combinations can be huge in size
于 2012-05-15T22:11:40.553 に答える
0

私はそれを考え出した:

val x = List(1,2,3,4)
x.map(i => sizes - i)
于 2012-05-15T15:35:33.543 に答える