簡體   English   中英

在Swift中提取一部分二維數組

[英]Extract a portion of two-dimensional array in Swift

我正在嘗試學習如何在Swift中處理二維數組。 這是我正在研究的雙暗陣列:

var Image = [[1,2,3],[4,5,6],[7,8,9]]

如果我只想提取前兩行和第一列(2x2),我將如何使用Swift的范圍運算符(...)。 我嘗試了以下方法:

let extractedImage = Image[0...1][0...1]

這沒用。 它給了我前兩行和列完全打印。 如何在不使用for循環的情況下處理此問題?

Image[0...1]返回[[1,2,3],[4,5,6]]

第二個[0...1]應用於同一個數組[[1,2,3],[4,5,6]] ,它獲得前兩個仍然是[1,2,3][4,5,6]

您要做的是將范圍應用於您可以使用map執行的每個數組。

let extractedImage = Image[0...1].map({ $0[0...1] })

或者image[0...1].map { $0[0...1].flatMap { $0 } } :)

我不確定我是否完全理解你的問題,但這是獲得[[1, 2], [4, 5]]的更安全的方式

var images = [[1,2,3],[4,5,6],[7,8,9]]
let result = images.prefix(2).map { Array($0.prefix(2)) }

print(result) // [[1, 2], [4, 5]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM