post-custom-banner

역시 Swift에도 Python과 유사하게 List Comprehension이 있었다. 자주 애용하는 방식이므로, 정리를 해두고 쓰려고 한다.!
여러가지 방법이 있지만, 자주 사용할 것 같은 나만의 기준으로(?) 정리하도록 하겠다.
python보다 더 간단한 것 같다...

내 생각엔,,,, { Curly brackets을 실수로 빼먹지 않는 것이 중요할 것 같다.

막간, 용어 정리
Parentheses ()
Square brackets []
Curly brackets {}
Angle brackets <>

고차함수 사용(Array)

let evens = (0..<5).map{$0} // [0,1,2,3,4]

let evenSquared = (0..<5).map({ $0 * $0 }) // [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

let evenFiltered = (0..<5).filter({$0 % 2 == 0}) [0,2,4]

Stride 사용(Array)

let evenStride = stride(from: 0,to: 10, by: 2) // [0, 2, 4, 6, 8]
let evenevne = Array(evenStride) // Stride type으로 반환되기 때문에, Array로 형 변환이 필요하다.

List Comprehension과 Zip을 이용한 Dictionary 만들기

var identic = (0..<5).map{$0}
var linef = (0..<5).map{$0}

var zipTetst = zip(identic, linef)
print(Array(zipTetst)) // Zip2Sequence 형태로 반환되므로, Array로 변경시 Tuple이 원소인 Array로 변경된다. [(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)]


let fullStack = Dictionary(uniqueKeysWithValues: zip(identic, linef)) // uniqueKeysWithValues가 Tuple이 원소인 Array를 받는다.
// [2: 2, 3: 3, 4: 4, 1: 1, 0: 0]
profile
RTFM
post-custom-banner

0개의 댓글