我正在尝试将矩阵合并到一个列表中。我试图用我的头围绕树遍历/ 0(n *表达式)我经常通过搜索找到的东西。我真的不认为这个问题和我要做的一样困难!?
# 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'等)] < / p>
答案 0 :(得分:2)
这归结为转置矩阵。这可以通过
完成zip(*args)
一旦我们有了这个,我们可以连接每一行来形成一个新的整数,并将这些值放在一个新的列表中:
def myFun(*args):
return [int(''.join(map(str, l))) for l in zip(*args)]
答案 1 :(得分:0)
这是你想要做的吗?
m = [1,2,3]
n = [4,5,6]
o = [7,8,9]
a = zip(m, n, o) # [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
b = [''.join(map(str, x)) for x in a] # ['147', '258', '369']