2011-06-08 40 views
0
url_params = {} 
for i in t: 
    try: 
     url_params[i] = t.next() 
    except: 
     url_params[i] = None 

因爲這對我來說看起來很愚蠢。我通過配對相鄰元素將列表轉換爲字典。然而,有些情況下,我不會總是有一對。拖尾元素仍然很重要,但它的價值並不重要。有沒有更好的方法來爲next指定一個默認值

回答

4

這更容易這樣做:

from itertools import izip_longest 
url_params = dict(izip_longest(*[iter(t)] * 2)) 

示例:t = range(11),這將產生

{0: 1, 2: 3, 4: 5, 6: 7, 8: 9, 10: None} 
+0

此獲勝。謝謝你一百萬。我早先使用這個錯誤,並感到沮喪。 – Matt 2011-06-09 00:11:35

1

也可以工作:

>>> dict(zip(t[::2], t[1::2]+[None])) 
{0: 1, 2: 3, 4: 5, 6: 7, 8: 9, 10: None} 
相關問題