2016-11-30 29 views
0

Ich habe eine Liste von Listen, und ich möchte die Liste mit nur eindeutigen Unterlisten erhalten. Zum Beispiel dieser Eingang:Liste mit eindeutigen Unterlisten

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

ich dies versucht:

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

sollte in umgewandelt wird

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

aber nicht den erwarteten Trick. Was mache ich falsch?

Antwort

2

Einfach zuordnen und distinct auf der inneren Liste tun.

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

Als Ihr mainList besteht aus Tupeln, können Sie auch die Tupel verwenden _2 die Liste im Tupel zu erhalten.

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

distinct kümmern uns nur um die einzigartigen Elemente in der Liste zu halten.

Verwandte Themen