如何将treeform元组转换为matrixform元组?

2024-06-26 00:18:27 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我的问题显得太幼稚或太基本,请事先原谅。我是一个仍在学习使用SE的人。你知道吗

有没有一种快速的方法将树型元组转换成矩阵型元组(三角形)?你知道吗

就是这样:

t=((1,),(2,3,),(4,5,6,),(7,8,9,10,))

对此:

t=((1,0,0,0,),(2,3,0,0,),(4,5,6,0,),(7,8,9,10,))

一个想法就够了。我可以试着自己实现它。你知道吗


Tags: 方法矩阵元组树型se三角形
3条回答

如果长度小于4,则可以添加0

tuple(a+(0,)*(4-len(a)) for a in t)
((1, 0, 0, 0), (2, 3, 0, 0), (4, 5, 6, 0), (7, 8, 9, 10))

利用元组连接:(就像你说的,这只是一个开始)

>>> (1,)+(0,)*2
(1, 0, 0)

max()len()函数:

>>> len(max(((1,),(2,3,),(4,5,6,),(7,8,9,10,)),key = lambda x: len(x)))
4

即使没有优化,我也会这样做:

def tuple_to_serie(t)
    s = []
    max_len = max( [len(tup) for tup in t] )
    for tup in t :
        s.append( tup+(0,)*(max_len-len(tup)) )
    return tuple(s)

然后:

t = tuple_to_serie(t)

相关问题 更多 >