我正在尝试将矩阵合并到一个列表中。我试图绕过遍历树/我一直在搜索中找到的0(n * expression)东西。我真的不认为这个问题像我要证明的那样困难!?

# example of what output should be
# ('147','258','369')

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

def myFun(*args):
    return [zip(args[x][i]) for x in args for i in args[x]]

print(myFun(m,n,o))


供将来参考,使用地图在此庄园中处理矩阵会更聪明吗?我已经了解到地图可以对每个元素应用一个函数,因此我对使用这种方法并获取其他输出表示怀疑(例如[['471','582','693'等)]

最佳答案

这归结为转置矩阵。这可以用

zip(*args)


一旦有了这个,我们就可以连接每一行形成一个新的整数,并将这些值放在一个新的列表中:

def myFun(*args):
    return [int(''.join(map(str, l))) for l in zip(*args)]

关于python - 任意分配的作业(列表(的编号))转换为单个列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13105874/

10-16 00:56