2015-11-13 68 views
2

如果我的問題顯得過於天真或太基本,請事先赦免。我仍然在學習使用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,)) 

只是一個想法就足夠了。我可以嘗試自己實施它。元組串接的

回答

1

佔據優勢:(這只是東西開始像你說的)

>>> (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 
3

您可以添加0如果長度少於4

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

我會做那樣的事情ev恩,如果它不是優化:

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)