python - 从列表和两个为元素提供动力的数字计算矩阵
问题描述
我正在尝试定义一个函数。该函数应该通过在命令行中插入一个数字列表和两个附加数字来计算一个矩阵,这应该是列表中每个元素将被供电的范围。
例如,如果我powers([2,3,4],0,2)
在命令行中插入,输出应该是一个 3x3 矩阵,第一行[2^0,2^1,2^2]
、第二[3^0,3^1,3^2]
行和第三行[3^0,3^1,3^2]
。
它应该看起来像:
输入:powers([2,3,4],0,2)
输出:[[1, 2, 4],[1,3,9],[1,4,16]]
有谁知道如何通过不将任何其他包导入python来做类似的事情?
到目前为止我有
def powers(C,a,b):
for c in C:
matrix=[]
for i in range(a,b):
c = c**i
matrix.append(c)
print(matrix)
但这只会给我一排。
解决方案
在您的外部循环中,您将在每次迭代中清空矩阵。在您的内部循环中,您将权力直接附加到矩阵,而您应该创建一个子列表并将数字附加到它,然后将子列表附加到矩阵。为此,您只需要一个简单的列表理解:
def powers(C, a, b):
matrix = [[c ** i for i in range(a, b + 1)] for c in C]
return matrix
测试:
>>> powers([2, 3, 4], 0, 2)
[[1, 2, 4], [1, 3, 9], [1, 4, 16]]
范围是range(a, b + 1)
因为 Python 的范围在结束前一步停止(不包括结束),所以要包括b
use b + 1
。
推荐阅读
- c# - Caliburn Micro 重新加载事件数据
- javascript - Ajax 请求有时会导致“XHR 加载失败:POST”错误
- sql - Charts.js 的 Laravel 查询构建器
- javascript - Cheerio 不工作。我究竟做错了什么?
- python - Python 脚本不会停止运行
- python - 3d numpy 数组中的特定排序类型
- javascript - 函数 addNewDriver() 未定义
- freemarker - 如何获取查询字符串的值?
- sql - 用于报告的 SQL 查询
- javascript - 不使用 Object.setPrototypeOf 设置构造函数的原型?