有没有更好的方法为next()分配默认值

时间:2011-06-08 23:49:15

标签: python

url_params = {}
for i in t:
    try:
        url_params[i] = t.next()
    except:
        url_params[i] = None

因为这对我来说太傻了。我正在通过配对相邻元素将列表转换为字典。但是,有些情况下,我不会总是有一对。拖尾元素仍然很重要,但它的价值并不重要。

2 个答案:

答案 0 :(得分: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}

答案 1 :(得分:1)

也有效:

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