2006年06月27日 星期二 08:25
不明白enumerate对于list的作用 和setdefault对于dictionary的作用. 高手指点一下. LINDA On 6/26/06, linda. s <samrobertsmith at gmail.com> wrote: > 以下程序为什么错? > >>> p > '\n3 1 5 5\n2 6 5 1\n10 1 44 10\n66 55 15 1 \n88 2 20 99\n' > >>> s=[ map(int,seg.split()) for seg in p.strip().split("\n")] > Traceback (most recent call last): > File "", line 1, in ? > TypeError: 'tuple' object is not callable > > Linda >
2006年06月27日 星期二 08:53
On 6/27/06, linda. s <samrobertsmith at gmail.com> wrote: > 不明白enumerate对于list的作用 enumerate在遍历时可以返回元素的索引值,如: for i, v in enumerate(a): 这对于某些需要索引值的情况非常方便。如打印序号,如果不用这个方法,我们遍历一般要写成: for i in range(len(a)): print i, a[i] 而使用enumerate,可以写为: for i, v in enumerate(a): print i, v > 和setdefault对于dictionary的作用. > 高手指点一下. > LINDA setdefault看文档相当于: D.setdefault(k[,d]) --> D.get(k, d) also D[k] = d if k not in D 也就是说相当于执行get方法,但如果k不存在,还要将缺省值加入到字典时。这个对于先判断key是否存在,如果存在则返回,如果不存在则设置缺省值的处理可以简化为一行语句。 > > On 6/26/06, linda. s <samrobertsmith at gmail.com> wrote: > > 以下程序为什么错? > > >>> p > > '\n3 1 5 5\n2 6 5 1\n10 1 44 10\n66 55 15 1 \n88 2 20 99\n' > > >>> s=[ map(int,seg.split()) for seg in p.strip().split("\n")] > > Traceback (most recent call last): > > File "", line 1, in ? > > TypeError: 'tuple' object is not callable > > 我试了没有问题啊。 -- I like python! My Blog: http://www.donews.net/limodou My Django Site: http://www.djangocn.org NewEdit Maillist: http://groups.google.com/group/NewEdit
Zeuux © 2025
京ICP备05028076号