如何在 Swift 3 中转置数组长度不等的矩阵

2023-12-15

我的数组是 [[Int]] 类型

array = [[1,2,3],
         [4,5,6],
         [7,8,9,10],
         [11,12,13],
         [14,15,16]]

我希望转置结果为:

array = [[1,4,7,11,14],
         [2,5,8,12,15],
         [3,6,9,13,16],
         [0,0,10,0,0]]

如何将 0 填充到不具有相等行或列映射的数组。

我希望转置适用于具有不相等映射元素的行和列。请帮忙。


这是一个可以完成您想要的操作的实现:

func transpose(_ input: [[Int]]) -> [[Int]] {
    let columns = input.count
    let rows = input.reduce(0) { max($0, $1.count) }

    var result: [[Int]] = []

    for row in 0 ..< rows {
        result.append([])
        for col in 0 ..< columns {
            if row < input[col].count {
                result[row].append(input[col][row])
            } else {
                result[row].append(0)
            }
        }
    }

    return result
}

或者,另一种选择:

func transpose(_ input: [[Int]]) -> [[Int]] {
    let columns = input.count
    let rows = input.reduce(0) { max($0, $1.count) }

    return (0 ..< rows).reduce(into: []) { result, row in
        result.append((0 ..< columns).reduce(into: []) { result, column in
            result.append(row < input[column].count ? input[column][row] : 0)
        })
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Swift 3 中转置数组长度不等的矩阵 的相关文章

  • print_r 的替代方案(仅显示最多 2 3 个键)

    我有一个multi dimensional array有 200 个键 每个键有 3 到 5 个数组 我想知道有什么方法可以只看到有限的部分 即最多 3 或 4 个键 因为如果我使用print r desiredArray 然后花费了太多时
  • 沿数组中的 n 个维度之一选择

    我在 R 中有一个数组 由如下函数创建 A lt array data NA dim c 2 4 4 dimnames list c x y NULL NULL 我想沿一维进行选择 因此对于上面的示例我将有 A x dim A x 1 4
  • 一维数组元素的最近邻运算

    我有二维数组 想将其转换为一维数组 二维数组是 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 到一维数组 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 如何访问元素编号的最近邻
  • “扩展”numpy ndarray 的好方法?

    有没有 扩展 numpy ndarray 的好方法 假设我有一个像这样的 ndarray 1 2 3 4 我希望每行通过填充零来包含更多元素 1 2 0 0 0 3 4 0 0 0 我知道一定有一些蛮力的方法可以做到这一点 比如构造一个带有
  • 查找所有数组的长度多维数组,Java

    我想使用多维数组来存储数据网格 但是 我还没有找到一种简单的方法来查找长度2nd数组的一部分 例如 boolean array new boolean 3 5 System out println array length 只会输出3 是否
  • 如何在 matlab 中创建由多个 3d 图像数据数组组成的数组

    我正在阅读 15 张图片imagedata imread imagename jpg 它的大小总是320 by 320 by 3 如何将数据放入数组中 使用 for for 循环 以便在访问新数组的第一个元素时获得输入的第一个图像的 RGB
  • php 数组中出现意外的 json 输出结构

    我正在尝试转换动态数据 如何从 PHP 获取此 JSON JSON 122240cb 253c 4046 adcd ae81266709a6 item 0 3 这就是我所做的 但它不起作用 PHP json array 122240cb 2
  • 使用日期 Swift 3 对字典数组进行排序

    我有一个名为 myArray 的数组 其中添加了字典 我希望该字典按时间排序 这是字典中的键 那个时间是在 String 中 时间的日期格式为 yyyy MM dd HH mm ss 我尝试使用下面的代码解决方案 但给出了 从 字符串转换
  • C++ 通过引用传递动态分配的二维数组

    这个问题是基于之前提出的问题而提出的 通过已知大小的引用多维数组传递 https stackoverflow com questions 529109 c pass by reference multidimensional array w
  • 如何从 GMSPlace 地址组件中提取街道、城市等

    我正在使用适用于 iOS 的 Google Places API 可以成功检索附近的地点并将地址显示为字符串 我想做的是提取地址组件 例如城市 以存储在数据库中 文档表明 GMSPlace 有一个 addressComponents 属性
  • 错误域=kAFAssistantErrorDomain 代码=209“(空)”

    我面临着一个问题SFSpeechRecognizer 启动应用程序几秒钟后 我开始收到错误消息 错误域 kAFAssistantErrorDomain 代码 209 空 和 错误 域 kAFAssistantErrorDomain 代码 2
  • 帕斯卡三角形二维数组 - 格式化打印输出

    我有一个小作业 必须使用二维数组来生成帕斯卡三角形 这是我的代码 它有效 如果我像这样显示三角形 就会有额外的机会 source daugerresearch com https daugerresearch com vault Pasca
  • Swift 3 IF 条件中的可选链接错误?

    这段代码在 Swift 2 3 中运行得很好 我不明白为什么我必须解开TestClass检查数字是否大于 4 这是链接选项的全部要点 以节省额外的调用 现在为了使这项工作正常进行 我必须检查是否testClass nil 或使用隐式解包if
  • Java棋盘游戏

    基本上 我正在用 java 创建一个棋盘游戏 并设法使用数组创建单元格 使其看起来像 10x10 网格 现在我已经对它们进行了编号 它们从左到右从上到下 如图所示 我正在创建一个类似于蛇和梯子游戏的游戏 但有自己的特色 问题是 如何创建类似
  • 使用具有来自平面数字数组的最大和的子数组填充数组

    我需要填充一个数组 其中可能包含不确定数量的子数组 托盘 每个子数组的最大尺寸为 265 厘米 我有一个整数 包 的平面数组 需要在托盘中进行最佳排列 例如 50 厘米 45 厘米 30 厘米 如何动态创建一个系统来创建代表具有最佳空间优化
  • swift 3 gamecenter:参与者数量始终为 4

    我制作了一款与 swift 2 完美配合的 TurnBased 游戏 我可以成功地将代码更改为 swift 3 2 并纠正大约 400 个错误 但游戏中心有一个问题 我不知道如何修复它 当通过游戏中心视图控制器时 我将参与者的数量设置为 2
  • 停止重复 UIImage 背景图案图像 - Swift

    我在 UITableView 中使用滑动来删除 在滑动中我需要添加图像 当我添加图像时 它会重复 如何停止重复 func tableView tableView UITableView editActionsForRowAt indexPa
  • 如何在二维数组中找到字符串?

    我有一个看起来像这样的数组 var array a b c d e f 我希望能够在数组中搜索字符串 d 并返回对应的值 c try function find str array for var i in array if array i
  • 在 C 中创建 int 数组的数组?

    假设我有以下方法原型 void mix audio int vocal data array int instrumental data array int mixed audio array FOURTH ARGUMENT 我会怎样 在上
  • Swift 3 和 Xcode8 - init 的使用不明确

    在我安装 Xcode 8 并将项目转换为 Swift 3 之前 以下行没问题 现在转换后看起来像这样 let valueData Data Data bytes UnsafePointer

随机推荐

  • 如何使用 while 循环和拆分来汇总逗号和换行符分隔的 CSV 文件中的数据?

    Perl 脚本必须加载 CSV 数据文件并对文件中的所有数字求和 文件中只有数字 以逗号和换行符分隔 我已经完成了大部分代码 但我没有得到正确的总数 我可能会忽略某些事情或对一两个概念有根本性的误解 任何帮助将不胜感激 全部汇总的 CSV
  • 如何在 TForm 以外的控件中捕获 WM_DEVICECHANGE?

    直到今天我一直在使用以下代码来捕获WM DEVICECHANGE应用程序主窗体中的消息并且它运行良好 但是 如果我尝试在自定义控件中使用它 我不会收到有关设备插入或删除的通知 怎么了 TDriveBar class TCustomPanel
  • 将闪亮与 Quantstrat 回测相结合

    我正在尝试制作一个网络应用程序 目的是使用 quantstrat 然而 我在整合两者方面遇到了一些困难 没有这方面的文档 所以很难找到一个开始的地方 这是我现在的代码 如果您能让我知道我做错了什么 我将不胜感激 谢谢 library shi
  • 将新值插入数组

    我目前有不同长度的列向量 我想在原始数组的各个点插入另一个列向量 即 我想将新数组添加到旧数组的开头 跳过 10 个位置 再次添加新数组 再跳过 10 个空格 再次添加新数组 依此类推 直到数组末尾 我可以使用以下方法来做到这一点 Offs
  • onTouch() 连续播放声音

    我想通过onTouch连续播放枪声 我这样做是为了自动枪的声音 所以我有声音循环延迟的问题 它不会给出真正的自动枪声音效果 我的主要观点是 声音一次又一次播放时不应有延迟 我的代码是 public boolean onTouch View
  • Mysqli 准备好的 Stmt 返回 0 num_rows [重复]

    这个问题在这里已经有答案了 帮助 我得到 0 num rows 但如果我在控制台中执行查询我会得到结果 我对准备好的 stmts 有点陌生 这是我的代码 数据库连接类 class DbConnection const HOST localh
  • Delphi中如何发送广播消息

    我想在我的局域网中发送广播UDP消息 应用程序是客户端 服务器 我希望更新用户界面 这样任何计算机都会发送消息来更新其他计算机 我可以使用UDPServer indy吗 如何使用 谢谢 创建两个应用程序 一个代表发送者 另一个代表接收者 S
  • 使用DBCC CHECKIDENT重新启动Identity列计数后是否可以回滚到原始状态?

    目前 在某些操作中 我必须删除旧数据并插入新数据 但我注意到 尽管删除了数据 但身份列并未重置并从其最后一个最大值继续 因此 我使用 DBCC CheckIdent 来实现相同的目的 所有这些都在事务中发生 我可以将事务回滚到初始状态吗 D
  • Django 在 save() 方法之后插入新对象而不是更新

    当试图update现有的 Django 模型对象 带有save 方法 一个new而是插入行 例如 gt gt gt import datetime gt gt gt from data lib models import Meal gt g
  • 如何配置 Poltergeist 或 PhantomJS 不遵循重定向?

    我有一些测试要求 JS 驱动程序不遵循重定向 是否可以配置 Poltergeist 来执行此操作 我注意到可以使用以下命令将命令传递给 PhantomJS命令行界面 所以也许这是另一种方法 我对Poltergeist不熟悉 所以我只回答Ph
  • 在Python中使用中文构建字典

    这是我第一次来这里 而且我对 Python 世界还是个新手 我也在学习中文 我想创建一个程序来使用字典复习中文词汇 这是我通常使用的代码 usr bin python coding utf 8 dictionary Hello 你好 Sim
  • 从 Flask 中的数据库中删除元素

    我想确保我在这里遵循最佳实践 我有一个从数据库中提取的数据表 在最后一列中 我有用于编辑或删除该行的链接 我觉得我总是被告知永远不要使用 GET 请求修改服务器上的数据 除了 GET 请求之外 我将如何处理删除此数据行 数据表的代码如下 t
  • 我们如何将用户和机器人消息记录到微软机器人框架中的cosmos db

    我使用 microsoft bot Framework v4 sdk 创建了一个聊天机器人 我想将机器人用户和机器人消息记录到 cosmos db 我只能使用下面的博客记录用户消息 我希望记录用户和机器人的响应 值得庆幸的是 这很容易 因为
  • Java 属性的字段隐藏

    我刚刚开始学习 Java 所以如果答案有些明显 请耐心等待 我做了一些研究但没有结果 据我了解 属性不会被覆盖 而只是隐藏字段 为了确定是否使用超类或子类中的属性 Java将检查引用的类型 然后我不明白这里的输出 public class
  • JOLT 转换以沿数组复制单个值

    我想将 JSON 转换为键值对 并同时复制特定的单个值 即 timestamp 对于所有这些对 输入 JSON Timestamp 2018 05 13T14 57 09 first key 1023 another key 1987 ye
  • 如何在 git diff 输出中正确显示重音

    当我运行 git diff 命令时 文件列表中所有带有重音符号的文件显示效果不佳 git diff name status xxxx yyyyyy return M 303 251 303 251 txt 我怎样才能保留口音来拥有这个 M
  • 函数结构不遵循的问题(PHP)

  • 带有消息“无法将类型(字符串)的变体转换为类型(双精度)的 EVariantTypeCastError 类”

    使用 Delphi 和 FastReport 在 Delphi 内调试时 紧接此行之后 我收到此错误消息
  • 在 Android 应用程序中解压 SD 卡上的压缩文件

    我有一个压缩密码保护的视频文件保存在 Android 模拟器的 SD 卡上 现在我想通过代码将该视频文件解压到SD卡上 我怎样才能做到这一点 有什么帮助或代码吗 提前致谢 import android util Log import jav
  • 如何在 Swift 3 中转置数组长度不等的矩阵

    我的数组是 Int 类型 array 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 我希望转置结果为 array 1 4 7 11 14 2 5 8 12 15 3 6 9 13 16 0 0 10 0 0