Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.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/8/python-3.x/16.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_List - Fatal编程技术网

Python 矩阵变换的嵌套列表

Python 矩阵变换的嵌套列表,python,python-3.x,list,Python,Python 3.x,List,我是Python新手。 我试图将矩阵的列转换为单个列表 这是我的意见 X= [[2,4,3], [7,8,2], [1,2,0]] T=[[row[i] for row in X] for i in range(len(X)-1)] T 我得到的输出是 [[2, 7, 1], [4, 8, 2]] 然而,我希望得到的输出是这样的 [[2, 7, 1], [4, 8, 2],[3,2,0]] 我有点纠结于嵌套列表的概念,不确定如何以这种方式修改代码,使其能够正确

我是Python新手。 我试图将矩阵的列转换为单个列表

这是我的意见

   X= [[2,4,3],
      [7,8,2],
      [1,2,0]]
T=[[row[i] for row in X] for i in range(len(X)-1)]
T
我得到的输出是

[[2, 7, 1], [4, 8, 2]]
然而,我希望得到的输出是这样的

[[2, 7, 1], [4, 8, 2],[3,2,0]]
我有点纠结于嵌套列表的概念,不确定如何以这种方式修改代码,使其能够正确地用于矩阵中任意数量的列和行

请注意,我不允许使用任何外部库,如NumPy等


非常感谢您提供的任何帮助,谢谢

您只需从
范围
参数中删除
-1

T=[[row[i] for row in X] for i in range(len(X))]
记住,范围不包括上限

对于非方形矩阵,可以使用:

T=[[row[i] for row in X] for i in range(len(X[0]))]

这将从旧列计数中获取新行计数。

您只需从
范围
参数中删除
-1

T=[[row[i] for row in X] for i in range(len(X))]
X= [[2,4,3],
      [7,8,2],
      [1,2,0]]
T=[[row[i] for row in X] for i in range(len(X[0]))]
记住,范围不包括上限

对于非方形矩阵,可以使用:

T=[[row[i] for row in X] for i in range(len(X[0]))]
这将从旧列计数中获取新行计数

X= [[2,4,3],
      [7,8,2],
      [1,2,0]]
T=[[row[i] for row in X] for i in range(len(X[0]))]
python
range
对其end参数是独占的,因此使用
range(len(X))
将得到数字0,1,…,len(X)-1

python
range
对于它的end参数是独占的,因此使用
range(len(X))
将产生数字0,1,…,len(X)-1

,如中所述

如中所述



[[row[i]for row in X]for i in range(len(X))]
给出了结果……当然,pythonic的方法是:
list(zip(*X))
从范围中删除-1,范围已经运行了1次,小于总的
[[row[i]for row in X]for i in range(len(X))]
给出了结果……当然,pythonic的方法是:
list(zip(*X))
从范围中删除-1,范围已运行1小于Total,问题是如果我有以下内容:X=[[1,0],[2,3],[4,2]]它表示索引超出范围。这就是我为什么使用Len(X)-1@Python_learner请参阅我的最新答案。底部版本适用于非平方矩阵。对于上面的示例,它生成
[[1,2,4],[0,3,2]]
。问题是如果我有这样的内容:X=[[1,0],[2,3],[4,2]],它表示索引超出范围。这就是我为什么使用Len(X)-1@Python_learner请参阅我的最新答案。底部版本适用于非平方矩阵。对于上面的例子,它产生
[[1,2,4],[0,3,2]]
。问题是如果我有这样的东西:X=[[1,0],[2,3],[4,2]],它说索引超出了范围range@Python_learner是的,我忽略了这个问题,
len(X)
表示行数,您应该使用
len(X[0])
表示列的长度,假设所有列都有相同的长度谢谢你!只是出于好奇,如果列的长度不一定相同呢?那么代码是什么样子的呢?因为我认为我的数据并不总是具有相同长度的列…@Python\u learner好吧,如果这些列的长度不相同(从数学上讲),就无法对其进行转换,可以使用列的最小长度,但这会导致数据丢失。您可以通过以下代码片段获得最小值:
min\u col\u len=min([len(a)表示X中的a])
非常感谢您,您是一个很棒的人!问题是如果我有这样的东西:X=[[1,0],[2,3],[4,2]]它说索引超出了范围range@Python_learner是的,我忽略了这个问题,
len(X)
指的是行数,您应该使用
len(X[0])
表示列的长度,假设所有列都具有相同的长度谢谢!只是出于好奇,如果列的长度不一定相同呢?那么代码是什么样子的呢?因为我认为我的数据并不总是具有相同长度的列…@Python\u learner好吧,如果这些列的长度不相同(从数学上讲),就无法对其进行转换,可以使用列的最小长度,但这会导致数据丢失。您可以通过以下代码片段获得最小值:
min\u col\u len=min([len(a)表示X中的a])
非常感谢您,您是一个很棒的人!