如何让python将列表列表作为列矩阵返回?

时间:2014-03-26 03:22:03

标签: python python-3.x

所以我在一个介绍课程中,我有一个作业,我必须创建一个我称之为函数make_x_table (r,c):的乘法表,需要产生这个结果:

make_x_table(3,4):
[[1, 2, 3, 4],
 [2, 4, 6, 8],
 [3, 6, 9, 12]]

我的问题是,我无法使用打印功能打印单个列表,我最初在此处所做的就是make_x_table_wrong (r,c):

def make_x_table_wrong (r,c):
    for rownum in range(1, r+1):
        list_v = []
        for colnum in range(1, c+1):
            v = colnum*rownum
            list_v.append(v)
        print (list_v)

我需要能够将列表列表作为列矩阵返回。有关方法的任何帮助吗?

1 个答案:

答案 0 :(得分:0)

在代码示例中,for rownum in range(1, r+1):位置buff = []以上:

buff = []
for rownum in range(1, r+1):

然后,您print(list_v)执行以下操作:

buff.append(list_v)

然后您的代码示例将如下所示

def make_x_table_right (r,c):
   buff = []
    for rownum in range(1, r+1):
        list_v = []
        for colnum in range(1, c+1):
            v = colnum*rownum
            list_v.append(v)
        buff.append(list_v)
    return buff

有意义吗?

此外,由于你的乘法表可能是正方形,我建议只传递一个参数n并使用n代替rc 。另一件事,另一个用户发布的单行评论的列表理解也完全没问题。此外,通常将变量ij用于矩阵循环标识符。所以不是rownum而是icolnum,而是j