2016-11-30 79 views
0

我有列表的列表,我想只列出唯一的子列表。例如,該輸入:獲取具有唯一子列表的列表

List((123,List(List(xxx, abc),List(xxx,abc),List(yyy,abc))), 
    (333,List(List(xxx, abc),List(yyy,abc),List(yyy,abc)))) 

應該被轉換爲:

List((123,List(List(xxx,abc),List(yyy,abc))), 
    (333,List(List(xxx, abc),List(yyy,abc)))) 

我嘗試這樣做:

val unique = input.map(list => (list._1, list._2.distinct)) 

,但它不會做預期的伎倆。我究竟做錯了什麼?

回答

2

只需在內部列表中映射並執行distinct即可。

mainList.map { case (a, list) => a -> list.distinct } 

當你的mainList由元組的,你也可以使用元組_2得到的元組列表。

mainList.map(pair => pair._1 -> pair._2.distinct) 

distinct將只保留在列表中的獨特元素的照顧。