시도
def process_alcs(lines: List[String]) : List[(String, Double)] = for (line <- lines) yield {
val a = line.split(",")
(a(0),a(4).toDouble)
}
기본적으로 다중 회선 평가를 수행하고 있습니다. 따라서 코드를 대신 {
으로 캡슐화해야합니다. 또한 두 진술은 하나의 {}
쌍으로 캡슐화해야합니다.
또한 스칼라의 배열 구성원은 ()
이 아니고 []
이 아니라 액세스하여 액세스합니다. 따라서 [0] 대신에 (0)을 사용하려고합니다.
별도의 메모에서 다른 사람이 오늘 물었던 다른 질문과 관련이있는 것 같습니다. 어떤 경우에는 4 번째 열의 값을 두 배로 변환하려고합니다. . 네 번째 열에 액세스하려면 (3)을 사용하는 것이 좋습니다. 이 도움이 경우
, 코드가되고,
def process_alcs(lines: List[String]) : List[(String, Double)] = for (line <- lines) yield {
val a = line.split(",")
(a(0), a(3).toDouble)
}
희망. 당신은 추가 질문 :
편집이 있으면 알려 주시기 :
def process_as_map(lines: List[String]) : Map[String, Double] = {
val results: List[(String, Double)] = for (line <- lines) yield {
val a = line.split(",")
(a(0), a(3).toDouble)
}
results.toMap
}
는 설명 주석을 참조하십시오,지도로 변환하기를, 당신의 코드
I에 따라 같은 불통 이유에 그것이 효과가 있다고 생각하고, 대단히 감사합니다.하지만 또 다른 문제가 있습니다. 내 다음 함수에서 값을지도로 밀어 넣으려고 노력하고 있습니다. def process_pops (lines : List [String]) : Map [String, Long] = for (line <- lines) yield { val b = line.split (",") (b (0) -> b (1) .toLong) .toMap }이 작동하지 않습니다. 나는 이번 주에 스칼라를 시작 '데프 process_pops (라인 : 목록 [문자열]) : 도움이 될 수 있습니다와 같은 외부 .toMap 이동 시간 –
주셔서 감사합니다 (목록 [문자열 : 맵 [문자열, 더블] = { 발 결과를 용 = 더블) (라인 <- 선)을 수득 { 발을 A = line.split (",") (a (0), A (3) .toDouble) } results.toMap }' 빌드 한 각각의 튜플에 대해 Map toMap을 호출하면 각 행을 단일 항목으로 맵으로 변환합니다. 그러므로, 당신은 List [Map [String, Double]]을 남겨 둡니다. 대신 당신이 먼저 전체 '목록 [(문자열, 더블)]'건설로 전환 한 다음이 일 – rmathews7
를 예상대로 작동한다고에'toMap'를 호출하는 경우 시간 –