列表课后习题
>>> matrix = [,... ,
... ]
>>> Tmatrix = [ for row in matrix] for i in range(4)]
>>> Tmatrix
[, , , ]
行列的转换不理解
row【i】的意思是每一行吗,怎么就变成列了 本帖最后由 编程追风梦 于 2022-8-31 11:09 编辑
编程追风梦 发表于 2022-8-31 11:02
这三种方法看一下
刚才没说清楚,具体解释一下哈:
有列表如下:
matrix = [, , ]
行换列后的结构如下
[, , , ]
怎么做到的呢?有三种方法
方法一:嵌套的列表推导式
>>> matrix = [, , ]
>>> [ for row in matrix] for col in range(len(matrix))]
[, , , ]
>>>原理很简单:先循环列,在固定列上循环每一行
方法二:zip迭代 + map映射
咱们先分下类哈:
在python2中:
>>> matrix = [, , ]
>>> map(list, zip(*matrix))
[, , , ]
>>>>>> matrix = [, , ]
>>> list(map(list, zip(*matrix)))
[, , , ]
>>>原理也很清晰:先用zip并行送代每一个列表元素,然后再用map讲结果中的元组转成列表
顺便说一下,row【i】是每一行里面的元素
给我设个最佳答案吧,谢谢啦,不喜勿喷
row【i】 是行中的每个元素。 小甲鱼的要求就是要把第1行变成第1列,第2行变成第2列...... 我也有同样的问题 我来回答一下,你给我设个最佳答案呗 编程追风梦 发表于 2022-8-31 10:59
我来回答一下,你给我设个最佳答案呗
arr = [,,]
#方法1
ar2 =[]
for i in range(len(arr)):
b =[]
for j in range(len(arr)):
b.append(arr)
ar2.append(b)
print(ar2)
#方法2
ar2 = list(map(list,zip(*arr)))
print(ar2)
#方法3
ar2 = [ for row in arr] for i in range(len(arr)) ]
print(ar2)这三种方法看一下
编程追风梦 发表于 2022-8-31 11:08
本帖最后由 编程追风梦 于 2022-8-31 11:09 编辑
刚才没说清楚,具体解释一下哈:
@python爱好者.我说的对吗?请教一下,啊趁楼主没看到之前,如果不对赶紧告诉我{:10_266:} 编程追风梦 发表于 2022-8-31 11:10
@python爱好者.我说的对吗?请教一下,啊趁楼主没看到之前,如果不对赶紧告诉我
对是对,但是.......你确定楼主能理解?
python爱好者. 发表于 2022-8-31 12:04
对是对,但是.......你确定楼主能理解?
楼主不是说不明白吗?所以我就........应该能理解 python爱好者. 发表于 2022-8-31 12:04
对是对,但是.......你确定楼主能理解?
有最佳答案就行(不负责任的微笑{:10_256:}) python爱好者. 发表于 2022-8-31 12:04
对是对,但是.......你确定楼主能理解?
那个人就回了row【i】是行中的每个元素 你就给了两个贡献?
那楼主应该给我最佳答案+1000贡献值 楼主,要是看不明白,可以尝试自己写for循环看下,我的解释如下{:10_256:}:
matrix = [,
,
]
# Tmatrix = [ for row in matrix] for i in range(4)]
# print(Tmatrix)
Tmatrix=[]
for i in range(4):
print(f'获取子列表位置:{i}')
Tmatrix1=[]#新的嵌套子列表
for row in matrix:
Tmatrix1.append(row)
print(Tmatrix1)
Tmatrix.append(Tmatrix1)
print(f'新获取的列表:{Tmatrix}') wyh551202 发表于 2022-9-2 15:09
楼主,要是看不明白,可以尝试自己写for循环看下,我的解释如下:
也可以的 这
第一行变列 这里是使用了列表推导式,所以变成了列表 你可以去查看关于这推导式的扩充知识 楼主不看达!
楼主怎么聊! 谢谢
页:
[1]