Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让python以列矩阵的形式返回列表列表?_Python_Python 3.x - Fatal编程技术网

如何让python以列矩阵的形式返回列表列表?

如何让python以列矩阵的形式返回列表列表?,python,python-3.x,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]] 我的问题是,我不能只使用print函数来打印单个列表,这是我最初在这里所做的,我称之为make_x_table_error(r,c):: 我需要能够以列矩阵的形式返回列表列表。关于如何操作的任何帮助?在您的代码示例中,对于范围(1,r+

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

make_x_table(3,4):
[[1, 2, 3, 4],
 [2, 4, 6, 8],
 [3, 6, 9, 12]]
我的问题是,我不能只使用print函数来打印单个列表,这是我最初在这里所做的,我称之为
make_x_table_error(r,c):


我需要能够以列矩阵的形式返回列表列表。关于如何操作的任何帮助?

在您的代码示例中,对于范围(1,r+1)中的rownum,请参见上面的
放置
buff=[]
,以便:

buff = []
for rownum in range(1, r+1):
然后,如果您有
打印(列表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
代替
r
c
。还有一件事,另一个用户以一行注释的形式发布的列表理解也是非常好的。另外,对于矩阵循环标识符,通常使用变量
i
j
。因此,对于m.wasowski,你要说的不是
rownum
,而是
i
colnum
你要说
j
[[i*j代表范围(1,c+1)中的i];对于范围(1,r+1)中的j]
,我希望它作为列矩阵返回,而不是打印它。我知道怎么做。对于alfasin来说,这实际上是一个非常好的方法来缩短我以前的代码,但我不确定这如何允许我将其作为列矩阵返回。有可能吗?还有,别忘了把有用的答案标为正确,然后投票表决。欢迎使用stack overflow.define“column matrix”对不起,我在其他地方看到了这个术语,我想我应该使用它。基本上,我希望列表中的每个列表都显示在自己的行上,就像我在需要的结果中显示的那样。是的,我认为他的更短的方法非常酷。但是,有可能以列格式返回列表列表吗?我可以很容易地生成列表的水平列表……它以2d格式返回列表。我想你说的是打印格式函数之类的。让我更新我的答案。检查这个,这将解决您的打印问题。然后你可以把你的矩阵传给那个打印函数,然后打印出来,就像这样:
一些打印函数(make_x_table_right(r,c))
我可能误解了我的教授想要什么。我可以让函数在shell中垂直打印,但是我的教授在作业中用词的方式让我觉得,当我运行模块时,shell应该使用return函数将列表列表生成为列表列。我开始认为这是不可能的?我认为你误解了你的教授想要你做什么。向他展示到目前为止你在矩阵表函数中得到了什么,看看他是怎么说的,因为就目前的情况来看,这双
[[
事情就是这样,我相信它确实是在返回一个列表列表。除非他想让你用另一种方式,将列作为行而不是列表。如果他想转换你现在返回的矩阵函数,只要
zip(*make_x_table_right(r,c))
,这样可以将列转换为行。更好吗?
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