如何以列而不是行的形式在类似网格的列表中打印数据?
How can I print the data in a grid-like list in columns instead of rows?
所以我有这个列表 data_lst
:
[1,2,3,4]
[3,2,4,1]
[4,3,1,2]
我希望我的输出是按列排列的数字,比如
[1,3,4]
[2,2,3]
[3,4,1]
[4,1,2]
到目前为止我已经尝试这样做了...
f = []
for x in data_lst:
for w in range(0,len(x)-1):
f.append(data_lst[w])
print(f)
但是,我得到的输出与我提供的输入相同,即..
[1,2,3,4]
[3,2,4,1]
[4,3,1,2]
我应该在我的代码中更改什么?
该操作称为矩阵转置。
您可以通过多种方式进行操作,例如使用 numpy、zip 等。
这只是修改您的代码的解决方案。
data_lst = [
[1,2,3,4],
[3,2,4,1],
[4,3,1,2]
]
rowLen = len(data_lst)
colLen = len(data_lst[0])
f = [[0 for _ in range(rowLen)] for _ in range(colLen)]
for c in range(colLen):
for r in range(rowLen):
f[c][r] = data_lst[r][c]
print(f)
所以我有这个列表 data_lst
:
[1,2,3,4]
[3,2,4,1]
[4,3,1,2]
我希望我的输出是按列排列的数字,比如
[1,3,4]
[2,2,3]
[3,4,1]
[4,1,2]
到目前为止我已经尝试这样做了...
f = []
for x in data_lst:
for w in range(0,len(x)-1):
f.append(data_lst[w])
print(f)
但是,我得到的输出与我提供的输入相同,即..
[1,2,3,4]
[3,2,4,1]
[4,3,1,2]
我应该在我的代码中更改什么?
该操作称为矩阵转置。 您可以通过多种方式进行操作,例如使用 numpy、zip 等。 这只是修改您的代码的解决方案。
data_lst = [
[1,2,3,4],
[3,2,4,1],
[4,3,1,2]
]
rowLen = len(data_lst)
colLen = len(data_lst[0])
f = [[0 for _ in range(rowLen)] for _ in range(colLen)]
for c in range(colLen):
for r in range(rowLen):
f[c][r] = data_lst[r][c]
print(f)