Swiftで、二次元配列の要素の順番を入れ替えたいです。

実現したいこと

Swiftで、二次元配列の要素の順番を入れ替えたいです。

前提

Swift初心者です。
Swiftで、二次元配列の要素の順番を入れ替えたいです。
はじめに、Googleで検索しても良い情報に辿り着けないので、もしかしたら、使っている用語が間違っているかもしれません。
質問内容ですが、例えば var city = [["東京", "愛知", "大阪"], ["北海道", "青森", "秋田"]]
という二次元配列があった時、[["”愛知", "東京", "大阪"], {"青森", "北海道", "秋田"]]
のように、中の配列の要素0と要素1の順番を入れ替えたいと考えています。
swapおよびswapAtについて調べましたが、1次元配列なら使えそうですが、2次元配列で使えるのか、また使い方がわかっていません。
以下のコードは、素人考えでプログラミングしたので、文法等が根本的に間違っていたら、指摘していただきたいです。

発生している問題・エラーメッセージ

Fatal error: Index out of range error: Execution was interrupted, reason: EXC_BREAKPOINT (code=1, subcode=0x18bcdc794). The process has been left at the point where it was interrupted, use "thread return -x" to return to the state before expression evaluation.

該当のソースコード

Swift

1et city: [[String]] = [["東京", "愛知", "大阪"], ["北海道", "青森", "秋田"]]2 3var array: [[String]] = [[],[]]4 5for num in 0 ..< city.count {6 array[num][0] = city[num][1]7 array[num][1] = city[num][0]8 array[num][2] = city[num][2]9}10 11print(array)

試したこと

以下のコードを書き、とりあえずエラーが出ずに動作しています。
ただ、これが正しいのか、もっと簡潔で良い方法があるのか、わかっていません。

Swift

1let city: [[String]] = [["東京", "愛知", "大阪"], ["北海道", "青森", "秋田"]]2 3var array: [[String]] = [[],[]]4 5array[0].append(city[0][1])6array[0].append(city[0][0])7array[0].append(city[0][2])8array[1].append(city[1][1])9array[1].append(city[1][0])10array[1].append(city[1][2])11 12print(array)

補足情報(FW/ツールのバージョンなど)

Swift初心者です。
Xcode 14.3
M2 MacBook Air
よろしくお願いします。

コメントを投稿

0 コメント