1

我正在尝试将一个矩阵组合成一个列表。我试图围绕我通过搜索不断找到的树遍历 / 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',等等)]

4

2 回答 2

2

这归结为转置矩阵。这可以通过

zip(*args)

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

def myFun(*args):
    return [int(''.join(map(str, l))) for l in zip(*args)]
于 2012-10-28T02:34:40.593 回答
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']
于 2012-10-28T02:36:01.640 回答