3
A
回答
5
晴酷似@Vakh的答案,但有一個更好的語法:
val l = List(1,2,3,4,5,6)
val m = l.grouped(2).map { case List(key, value) => key -> value}.toMap
// Map(1 -> 2, 3 -> 4, 5 -> 6)
3
嘗試:
val l = List(1,2,3,4,5,6)
val m = l.grouped(2).map(l => (l(0), l(1))).toMap
3
如果列表是保證即使長度:
val l = List(1,2,3,4,5,6)
val m = l.grouped(2).map { x => x.head -> x.tail.head }.toMap
// Map(1 -> 2, 3 -> 4, 5 -> 6)
但如果列表可能是奇數長度,請使用headOption:
val l = List(1,2,3,4,5,6,7)
val m = l.grouped(2).map(x => x.head -> x.tail.headOption).toMap
// Map(1 -> Some(2), 3 -> Some(4), 5 -> Some(6), 7 -> None)
+0
我想,在奇長的情況下,最好使用'padTo'方法 –
+0
@ om-nom-nom'padTo'會迫使我們選擇一個隨機值來表示'缺失'。使用Option的教科書案例。 –
0
沒有使用grouped
,目前爲止在答案中無處不在。
scala> val l = (1 to 6).toList
l: List[Int] = List(1, 2, 3, 4, 5, 6)
scala> l.zip(l.tail).zipWithIndex.collect { case (e, pos) if pos % 2 == 0 => e }.toMap
res0: scala.collection.immutable.Map[Int,Int] = Map(1 -> 2, 3 -> 4, 5 -> 6)
你也可以使用sliding
和foldLeft
如下:
scala> l.sliding(2,2).foldLeft(Map.empty[Int,Int]){ case (m, List(l, r)) => m + (l -> r) }
res1: scala.collection.immutable.Map[Int,Int] = Map(1 -> 2, 3 -> 4, 5 -> 6)
相關問題
- 1. 如何將List [java.util.Map]轉換爲List [Map]
- 2. 如何將List [List [Map [String,String]]]轉換爲List [Map [String,String]]
- 3. CSS一個元素的兩個連續轉換轉換
- 4. 將List/Map轉換爲org.apache.flink.util.Collector
- 5. 如何將List(List [String])轉換爲Map [String,Int]?
- 6. Dart:如何將一個Set轉換爲toJson方法中的Map條目?
- 7. 將List中的元素轉換爲Title-Case?
- 8. 如何將數組中的每兩個連續值轉換爲鍵/值對?
- 9. 如何減去NSArray中的兩個連續元素
- 10. 如何搜索在XML文件中的兩個連續元素
- 11. 如何將數組元素轉換爲PHP中的simplae元素?
- 12. 如何將List <Map <String,Long>轉換成TreeMap或Map?
- 13. 如何將List [String]轉換爲List [ServerAddress]?
- 14. 如何將linq中的兩個XML元素交換爲xml
- 15. 如何將DynamoDB Map/List類型通過AWS Pipeline轉換爲Redshift?
- 16. 如何將類轉換爲Map [X,(List [Y],Z)]?
- 17. 如何在C#中將List的項目拆分爲兩個?
- 18. 如何將連續變量轉換爲R中的離散值?
- 19. Java如何將List轉換爲具有多個參數的Map函數
- 20. 計算兩個元素onkeyup - 如何將其轉換爲jQuery?
- 21. 如何將JSONArray轉換爲Gson的List?
- 22. 如何將數據框中的兩列轉換爲scala中的Map(col1,col2)?
- 23. 如何將條目中的項目拆分爲兩個項目?
- 24. MySQL組連續轉換爲使用兩個連接列的Postgres
- 25. 交換兩個連續的元素列表
- 26. 如何在Scala中將List [Any]轉換爲List(Int,Int)?
- 27. Prolog中的兩個連續元素之間的差異
- 28. 平均列表中的兩個連續的元素在Python
- 29. 如何在python中迭代列表中的兩個連續元素?
- 30. 如何將List [Tuple2 [X,Y]]轉換爲Map [X,List [Y]]以避免Scala中的重複?
我同意:語法是更好:) –