[英]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.