2013-11-01 31 views
-2

有人會告訴我如何使用列表理解來創建列表,具有像下面的問題那樣的無數據值的默認值。列表理解創建列表和無數據值的提要默認值

我有一個三角形的數據集,我想要使用列表理解進行二維列表。 我想喂0而不是無數據值。

輸入表格...

3 
    7 4 
2 4 6 
8 5 9 3 

輸出形式。

3 0 0 0 
7 4 0 0 
2 4 6 0 
8 5 9 3 

任何人都可以幫助我。提前致謝。

+0

你嘗試自己做任何事?爲什麼它*具有*作爲列表理解?你知道最前面一排的最大長度嗎? –

+0

不..我不知道列表的最大長度...我試過bt似乎沒有辦法只使用列表理解..或者如果有一種方式,它將會非常複雜... :) –

+1

你將有*至少循環兩次;一次以獲得長度。下面的hcwhsa答案會循環兩次,隱藏在'*'參數展開式中。 –

回答

1

您可以使用itertools.izip_longest

>>> from itertools import izip_longest 
>>> strs = """ 3        
    7 4 
2 4 6 
8 5 9 3""" 
>>> lis = [s.split() for s in strs.splitlines()] 
>>> zip(*(izip_longest(*lis, fillvalue='0'))) 
[('3', '0', '0', '0'), 
('7', '4', '0', '0'), 
('2', '4', '6', '0'), 
('8', '5', '9', '3')] 
+0

http://stackoverflow.com/questions/19419154/getting-max-value-from-each-column-of-the-csv-file –

+0

@tailor_raj請不要發表無關的評論。 –

+0

不..這是一個很好的問題,我也解決了這個問題,但是我正試圖獲得有效的方法..因爲我是初學者... –