2007年01月09日 星期二 11:40
好像Iterator这个类型自带没有这个方法。 我需要判断Iterator是否包含数据,如果不包含,则跳出,包含数据,则进入for循环。 谢谢! __________________________________________________ 赶快注册雅虎超大容量免费邮箱? http://cn.mail.yahoo.com
2007年01月09日 星期二 12:11
On 1/9/07, mikegaulmail-python at yahoo.com.cn < mikegaulmail-python at yahoo.com.cn> wrote: > > 好像Iterator这个类型自带没有这个方法。 > > 我需要判断Iterator是否包含数据,如果不包含,则跳出,包含数据,则进入for循环。 > > 谢谢! > > > > __________________________________________________ > 赶快注册雅虎超大容量免费邮箱? > http://cn.mail.yahoo.com > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese In [11]: class Iter(object): ....: def __iter__(self):return self ....: def next(self):raise StopIteration ....: In [12]: for i in Iter():print i ....: 直接 for 就可以了,如果迭代器中没有数据就不会进入 for 循环。 另外你可以看到当 迭代器 迭代到没有数据的时候会抛出 StopIteration 异常,你要判断的话可以手动去调用 next 然后捕获这个异常。 -- http://codeplayer.blogspot.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://python.cn/pipermail/python-chinese/attachments/20070109/09c65443/attachment.htm
2007年01月09日 星期二 12:18
我必须在for之前判断一下,因为,如果Iterator中为空的话,那么后面还有很多Iterator这样的类型我就不用继续检查了,直接退出程序就可以了。 另外,如果用next()检查确实可以知道是否为空,但是这样的话,再用for的时候,就从Iterator的第二个元素开始了,我想再从第一个开始可以吗? --- yi huang <yi.codeplayer在gmail.com>写道: > On 1/9/07, mikegaulmail-python在yahoo.com.cn < > mikegaulmail-python在yahoo.com.cn> wrote: > > > > 好像Iterator这个类型自带没有这个方法。 > > > > > 我需要判断Iterator是否包含数据,如果不包含,则跳出,包含数据,则进入for循环。 > > > > 谢谢! > > > > > > > > __________________________________________________ > > 赶快注册雅虎超大容量免费邮箱? > > http://cn.mail.yahoo.com > > _______________________________________________ > > python-chinese > > Post: send python-chinese在lists.python.cn > > Subscribe: send subscribe to > python-chinese-request在lists.python.cn > > Unsubscribe: send unsubscribe to > python-chinese-request在lists.python.cn > > Detail Info: > http://python.cn/mailman/listinfo/python-chinese > > > In [11]: class Iter(object): > ....: def __iter__(self):return self > ....: def next(self):raise StopIteration > ....: > > In [12]: for i in Iter():print i > ....: > > 直接 for 就可以了,如果迭代器中没有数据就不会进入 > for 循环。 > 另外你可以看到当 迭代器 迭代到没有数据的时候会抛出 > StopIteration 异常,你要判断的话可以手动去调用 next > 然后捕获这个异常。 > > -- > http://codeplayer.blogspot.com/ > __________________________________________________ 赶快注册雅虎超大容量免费邮箱? http://cn.mail.yahoo.com
2007年01月09日 星期二 12:21
On 1/9/07, mikegaulmail-python在yahoo.com.cn <mikegaulmail-python在yahoo.com.cn> wrote: > 我必须在for之前判断一下,因为,如果Iterator中为空的话,那么后面还有很多Iterator这样的类型我就不用继续检查了,直接退出程序就可以了。 > > 另外,如果用next()检查确实可以知道是否为空,但是这样的话,再用for的时候,就从Iterator的第二个元素开始了,我想再从第一个开始可以吗? > iterator一般是动态生成的,所以有时不好决定它的长度。而一般next()一旦执行,是回不去的。只能是在设计iterator时考虑了这个问题才可以。简单情况下是不行的。 -- I like python! UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad My Blog: http://www.donews.net/limodou
2007年01月09日 星期二 13:21
把Iterator转换成 list,再判断 mikegaulmail-python在yahoo.com.cn wrote:: > 我必须在for之前判断一下,因为,如果Iterator中为空的话,那么后面还有很多Iterator这样的类型我就不用继续检查了,直接退出程序就可以了。 > > 另外,如果用next()检查确实可以知道是否为空,但是这样的话,再用for的时候,就从Iterator的第二个元素开始了,我想再从第一个开始可以吗? > > --- yi huang <yi.codeplayer在gmail.com>写道: > >> On 1/9/07, mikegaulmail-python在yahoo.com.cn < >> mikegaulmail-python在yahoo.com.cn> wrote: >>> 好像Iterator这个类型自带没有这个方法。 >>> >>> > 我需要判断Iterator是否包含数据,如果不包含,则跳出,包含数据,则进入for循环。 >>> 谢谢! >>> >>> >>> >>> __________________________________________________ >>> 赶快注册雅虎超大容量免费邮箱? >>> http://cn.mail.yahoo.com >>> _______________________________________________ >>> python-chinese >>> Post: send python-chinese在lists.python.cn >>> Subscribe: send subscribe to >> python-chinese-request在lists.python.cn >>> Unsubscribe: send unsubscribe to >> python-chinese-request在lists.python.cn >>> Detail Info: >> http://python.cn/mailman/listinfo/python-chinese >> >> >> In [11]: class Iter(object): >> ....: def __iter__(self):return self >> ....: def next(self):raise StopIteration >> ....: >> >> In [12]: for i in Iter():print i >> ....: >> >> 直接 for 就可以了,如果迭代器中没有数据就不会进入 >> for 循环。 >> 另外你可以看到当 迭代器 迭代到没有数据的时候会抛出 >> StopIteration 异常,你要判断的话可以手动去调用 next >> 然后捕获这个异常。 >> >> -- >> http://codeplayer.blogspot.com/ >> > > > __________________________________________________ > 赶快注册雅虎超大容量免费邮箱? > http://cn.mail.yahoo.com > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese -- Vim 中文 Google 论坛 http://groups.google.com/group/Vim-cn
Zeuux © 2025
京ICP备05028076号