python - 用户索引类似于矩阵的东西
问题描述
首先需要说这本质上是一个家庭作业问题,对我来说真的是一个很难的问题。
从动态矩阵的打印输出(或任何可以格式化和打印为视觉相似的东西),我需要使用来自用户输入的索引来更改该“矩阵”中的值。它不一定是矩阵,可以格式化为相似的东西也可以。
让这个问题对我来说很困难的是只能使用未嵌套的列表、字符串或字典,并且不允许导入包。所以,列表理解是不可能的。
到目前为止,我尝试过的一件事是根据单独的列表打印单独的列表和索引,但我被卡住了。
解决方案
您可以使用一维列表,在用户输入中获取 x、y 坐标,并根据 x 偏移量转换 y 坐标。
例如,假设您想要表示一个 5x3 数组,而用户想要第二列 (x=2) 和第三行 (y=3)。假设我们的矩阵显示 1,1 在左上角。
将 y 坐标减 1 乘以矩阵的宽度以获得一维列表中的单元格偏移数,然后进一步偏移 x - 1(请记住,Python 列表是基于 0 的)以正确定位在 x 轴上.
具有一维索引的矩阵示例:
0 | 1 | 2 | 3 | 4
5 | 6 | 7 | 8 | 9
10 | 11 | 12 | 13 | 14
取上面的算法:
index = (y - 1) * 5 + x - 1 # ((3 - 1) * 5 + 2 - 1) = 11
如您所见,根据示例用户输入,11 确实在我们的矩阵中的第二列和第三行。
然后,您可以通过简单的 for 循环显示矩阵,知道矩阵的大小并酌情插入新行。
如果要求用户也输入基于 0 的索引,您可以稍微简化上述内容。您不需要从 x 和 y 中减去 1。
推荐阅读
- python - 数据框:发现GDP连续两个季度下降以发现衰退开始
- elasticsearch - OrchardCore match_phrase 不返回结果
- javascript - 在 React.Intl 上运行函数
- javascript - 调用查询后在控制台日志中出现错误并且无法在组件中打印数据
- azure-devops - Azure DevOps 通过 Web 限制查看代码
- php - 为什么我的表单没有重定向到标题中的链接?
- c# - 如何计算某个字母输入c#的次数
- regex - 如何在不更改 URL 目录的情况下将用户重定向到页面?
- java - 使用 selenium 和 Java 进行 UI 测试自动化的最佳实践
- angular - 如何在 Angular Single SPA 应用程序中正确安装 Material?