2011-12-20 70 views
1

附加信息讓新的記錄我有2所列出:的Python:從現有列表

l = [1,2,3,4,5,6,7] 
f = [[3,'Red'],[2,'Blue']] 

我想根據f這樣的結果將是類似與l做:

result = ((1,'Red'), (2,'Red'), (3,'Red'), (4,'Blue'), (5,'Blue'), (6,'None'), (7,'None')) 

你能給我一些簡單而簡單的代碼嗎? 感謝您的幫助!

+2

你不應該命名您的變量,比如'list',這是錯誤的常見原因(不是你的情況) – 2011-12-20 14:32:12

+1

這是一個相當瑣碎的問題,內置的蟒蛇。你有什麼嘗試,你到底在哪裏卡住? – 2011-12-20 14:32:51

+1

我使用了許多'for'循環。我正在尋找新的簡單解決方案。對一些人來說這可能是微不足道的,但對彼此都是嚴肅的:)。不管怎樣,謝謝! – anhtran 2011-12-20 14:36:00

回答

9
result = tuple(itertools.izip_longest(l, (x[1] for x in f for y in range(x[0])), fillvalue='None')) 
+1

+1。教一個人釣魚和所有的:) – 2011-12-20 14:36:06