2012-05-15 54 views

回答

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 
+0

+1謝謝,我想我雖然想出了一個稍微簡單的版本。 –

0

我想通了:

val x = List(1,2,3,4) 
x.map(i => sizes - i) 
+4

你的意思是'x'而不是'sizes'嗎?如果是這樣,這對'x = List(1,2,3,2)'不起作用。它也使用'-',這已被棄用。 – dhg

+0

你是對的,謝謝。 –

2
List(1, 2, 3, 4).combinations(3).toList 

,或者更一般地,

list.combinations(list.size - 1) // use the Iterator -- combinations can be huge in size 
+0

'list(1,2,3,2).combinations(3).foreach(println)'不會打印出'2,3,2'怎麼樣? –

相關問題