簡體   English   中英

從列表和兩個為元素提供動力的數字計算矩陣

[英]compute matrix from list and two numbers that powers the elements

我正在嘗試定義一個 function。 function 應該通過在命令行中插入一個數字列表和兩個附加數字來計算一個矩陣,這應該是列表中每個元素將被供電的范圍。

例如,如果我在命令行中插入powers([2,3,4],0,2) ,則 output 應該是一個 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)

output: [[1, 2, 4],[1,3,9],[1,4,16]]

有誰知道如何通過不將任何額外的 package 導入 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)

但這只會給我一排。

在您的外部循環中,您將在每次迭代中清空矩陣。 在您的內部循環中,您將權力直接附加到矩陣,當您應該創建一個子列表並將 append 數字添加到它時,然后 append 將子列表添加到矩陣。 為此,您只需要一個簡單的列表理解:

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使用b + 1

暫無
暫無

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

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