>

빠른 기본 사전 값을 가질 수 있다는 것을 알고 있지만 튜플을 위해이 작업을 수행하는 데 어려움을 겪고 있습니다

var freq = [Int:(Int,Int,Int)]()

기본 값을 만들고 싶습니다

freq[num.element, default: (0, num.offset, num.offset) ] = (7, 0, 0 )

키가 존재하지 않을 때 모든 값에 대해 7,0,0의 빈도 테이블을 생성합니다.

보다 복잡한 사전에 기본값을 사용할 수 있습니까?

예를 들어 숫자 배열 [1,2,2,3,3,3]이있는 경우 빈도 표를 사용하여 요소 수를 계산할 수 있습니다

var freq = [Int:Int]()
for num in nums {
    freq[num, default: 0] += 1
}

각 숫자의 초기 위치와 각 숫자의 최종 위치를 빈도 표에 저장하고 싶습니다.

var freq = [Int:(Int,Int,Int)]()
    for num in nums.enumerated() {
        if freq[num.element] == nil {
            freq[num.element] = (1,num.offset, num.offset)
        } else {
            freq[num.element] = (freq[num.element]!.0 + 1, freq[num.element]!.1, num.offset)
        }
    }

이 코드에서는 기본값을 사용하고 싶습니다.

단일 값 이상을 포함하는 빈도 목록에서 기본값을 사용하는 방법을 찾고 있습니다. 값 배열 대신 튜플을 사용하는 것은 관련이 없습니다. 예를 들어 배열을 사용하여 튜플에서 기본값을 사용하는 방법을 찾고 싶습니다.

위의 예를 사용하여 기본값을 설정하려고 시도했지만 테스트 할 때 작동하지 않습니다. 이전 질문 인 Google 검색과 Apple의 설명서를 살펴 보았습니다.

질문 : 사전에 기본값을 사용하는 방법 var freq = Int : (Int, Int, Int)

  • 답변 # 1

    이것이 당신이 찾고있는 것입니까? 현재 값을 기본값으로 가져 와서 변수에 저장하면 삶이 더 쉬워집니다.

    var freq = [Int:(Int,Int,Int)]()
    var nums = [1,2,2,3,3,3]
    for num in nums.enumerated()
    {
        let currentTuple = freq[num.element, default: (0,num.offset,num.offset)]
        freq[num.element] = (currentTuple.0 + 1, currentTuple.1,num.offset)
    }
    print(freq) //output: [1: (1, 0, 0), 2: (2, 1, 2), 3: (3, 3, 5)]
    
    

  • 이전 mysql - UPDATE&INSERT의 경우, 엔드 포인트 또는 GET 요청을 사용하여 서블릿에서 데이터를 처리 할 수 ​​있습니까?
  • 다음 mdx - 선택한 차원 멤버 쿼리 (tostring)