سكالا ، إضافة قائمة المتغيرات إلى بداية كل قائمة في قائمة

StackOverflow https://stackoverflow.com//questions/24044246

سؤال

أنا جديد على سكالا وترغب في الحصول على الشيء التالي القيام به باستخدام خريطة ، فلاتماب ، و/أو للفهم.

لدي قائمة من القوائم l = List[List[T]].على سبيل المثال, l = [[1,2,3],[2,4,6,4],[3,4,6,2,3]].لاحظ أن كل قائمة بالداخل l يمكن أن يكون طول متفاوتة.

الآن لدي val x: List[Int] = [1,2,3] وأريد أن أفعل بعض العمليات على x و l أن يعود [[1,1,2,3], [1,2,4,6,4], [1,3,4,6,2,3], [2,1,2,3], [2,2,4,6,4], [2,3,4,6,2,3], [3,1,2,3], [3,2,4,6,4], [3,3,4,6,2,3]] (ترتيب القوائم الفرعية لا يهم).

أشعر أنني يجب أن تستخدم خريطة أو فلاتماب أو ل-حلقة للقيام بذلك ولكن بعد فترة طويلة من المحاكمة لا أستطيع حتى الحصول على نوع الصحيح.يمكن لأي شخص أن يساعدني على ذلك?

هل كانت مفيدة؟

المحلول

scala> val ls = List(List(1,2,3),List(2,4,6,4),List(3,4,6,2,3))
ls: List[List[Int]] = List(List(1, 2, 3), List(2, 4, 6, 4), List(3, 4, 6, 2, 3))

scala> val xs: List[Int] = List(1,2,3)
xs: List[Int] = List(1, 2, 3)

scala> for(x <- xs; l <- ls) yield x +: l
res22: List[List[Int]] = List(List(1, 1, 2, 3), List(1, 2, 4, 6, 4), List(1, 3, 4, 6, 2, 3), List(2, 1, 2, 3), List(2, 2, 4, 6, 4), List(2, 3, 4, 6, 2, 3), List(3, 1, 2, 3), List(3, 2, 4, 6, 4), List(3, 3, 4, 6, 2, 3))

نصائح أخرى

x.flatMap(i => l.map(i::_))
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top