职业经验 # 每日一道面试题 # 矩阵变换

陈子昂 · 2018年03月28日 · 最后由 hellohell 回复于 2018年04月03日 · 3183 次阅读

本次题目

m=[[1,2,3],[4,5,6],[7,8,9]] 多维数据的列表

本次要求

要求返回是 1 个列表,可以如下,也可以是 1 个新的重组的 m
[1, 4, 7]
[2, 5, 8]
[3, 6, 9]

来试试回答吧,语言不限,注意返回的是什么哦。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 15 条回复 时间 点赞

线性代数

线代挂科的路过😀

这道题和线性代数没关系啊,高中的时候的做好多类似的题,这个就像输出杨辉三角类似的

2L 调皮...

用 js 的老实人就这么写行吗? F12 console 直接就可以测试

let m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

function ext(origin, index) {
    let nr = []
    origin.map(a => {
        nr.push(a[index])
    })
    return nr
}

console.log([ext(m, 0), ext(m, 1), ext(m, 2)])
7楼 已删除
8楼 已删除
匿名 #9 · 2018年03月28日

重点

10楼 已删除

list(zip(*m))

12楼 已删除

我也来个老实人的写法吧。

m = [[1,2,3], [4,5,6], [7,8,9]]
_m = []
for i in range(len(m)):
    l = []
    for i_l in m:
        l.append(i_l.pop(0))
    _m.append(l)

print(_m)

一行就厉害了。。
例行献丑。..初学。哈哈

m = [[1, 2, 3, -1], [4, 5, 6, -2], [7, 8, 9, -3]]
n = []

for x in range(0, len(m[0])):
    a = []
    for y in range(0, len(m)):
        a.append(m[y][x])
    n.append(a)
print(n)

这个题目的确疏忽了,有 zip 的这个玩意、、、

m=[[1,2,3],[4,5,6],[7,8,9]]

#取出来是1个list
for c in range(len(m)):
    col =[row[c] for row in m]
    print(col)

我是这样写的。

初学 python 老实人写法,要求返回是 1 个列表

[list(i) for i in zip(*m)]
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册