python的for如何获得当前循环次数?

5 views
Skip to first unread message

David.D

unread,
Apr 4, 2008, 11:55:59 PM4/4/08
to python-cn`CPyUG`华蟒用户组
初学者问题:python的for如何获得当前循环次数?
我现在是这样做的:
i = 0
for item in data:
...
i +=1

有更好的方法吗?谢谢。

张沈鹏(电子科大 毕/就业倒计时...)

unread,
Apr 5, 2008, 12:00:31 AM4/5/08
to pyth...@googlegroups.com
for i in range(len(data)):
data[i]=xxx

2008/4/5 David.D <dengyu...@gmail.com>:

--
博客:http://zsp.javaeye.com/
个人网站:http://zsp007.com.cn/
电子科大,7月就要毕业了,何去何从...
双学位:生物医学工程+计算机科学与技术
-- 张教主

Nick Cen

unread,
Apr 5, 2008, 12:03:38 AM4/5/08
to pyth...@googlegroups.com
>>> for i,v in enumerate(['a','b']):
... print i,v
...
0 a
1 b
>>>


2008/4/5 张沈鹏(电子科大 毕/就业倒计时...) <zsp...@gmail.com>:



--
http://candynick.vicp.net

Zoom.Quiet

unread,
Apr 5, 2008, 12:33:49 AM4/5/08
to pyth...@googlegroups.com
2008/4/5 Nick Cen <ceny...@gmail.com>:

> >>> for i,v in enumerate(['a','b']):
> ... print i,v
> ...
> 0 a
> 1 b
> >>>
>
感谢提醒!
http://tinyurl.com/6rv22s
enumerate( iterable)
Return an enumerate object. iterable must be a sequence, an
iterator, or some other object which supports iteration. The next()
method of the iterator returned by enumerate() returns a tuple
containing a count (from zero) and the corresponding value obtained
from iterating over iterable. enumerate() is useful for obtaining an
indexed series: (0, seq[0]), (1, seq[1]), (2, seq[2]), .... New in
version 2.3.

居然是从 2.3 就有的优秀工具!
看来内建函式得反复学习了

还是迭代法术!
记录!
http://wiki.woodpecker.org.cn/moin/MicroProj/2008-04-05

>
> 2008/4/5 张沈鹏(电子科大 毕/就业倒计时...) <zsp...@gmail.com>:
>
>
> > for i in range(len(data)):
> > data[i]=xxx
> >
> > 2008/4/5 David.D <dengyu...@gmail.com>:
> >
> > > 初学者问题:python的for如何获得当前循环次数?
> > > 我现在是这样做的:
> > > i = 0
> > > for item in data:
> > > ...
> > > i +=1
> > >
> > > 有更好的方法吗?谢谢。
> > > >
> > >
> >
> >
> >
> > --
> > 博客:http://zsp.javaeye.com/
> > 个人网站:http://zsp007.com.cn/
> > 电子科大,7月就要毕业了,何去何从...
> > 双学位:生物医学工程+计算机科学与技术
> > -- 张教主
> >
> >
> >
> >
> >
> >
>
>
>
> --
> http://candynick.vicp.net
>
>
> >
>

--
'''过程改进乃是开始催生可促生靠谱的人的组织!
PI keeps evolving organizations which promoting people be good!
'''http://zoomquiet.org
Pls. usage OOo to replace M$ Office. http://zh.openoffice.org
Pls. usage 7-zip to replace WinRAR/WinZip. http://7-zip.org
You can get the truely Freedom 4 software.

David.D

unread,
Apr 5, 2008, 2:25:55 AM4/5/08
to python-cn`CPyUG`华蟒用户组
enumerate!Great!Thanks!

查了一下enumerate这个函数,在limodou的博客中看到一篇:

====================================================================================================
enumerate是python 2.3中新增的内置函数,它的英文说明为:

enumerate( iterable)

Return an enumerate object. iterable must be a sequence, an iterator,
or some other object which supports iteration. The next() method of
the iterator returned by enumerate() returns a tuple containing a
count (from zero) and the corresponding value obtained from iterating
over iterable. enumerate() is useful for obtaining an indexed series:
(0, seq[0]), (1, seq[1]), (2, seq[2]), .... New in version 2.3.
它特别适合用于一个for循环时,当我们同时需要计数和元素时可以使用这个函数。举个简单的例子,有一个字符串数组,需要一行一行打印出来,同时每行前
面加上计数,从1开始。

s = ['abc', 'This is a test', 'Hello, Python']
for i, line in enumerate(s):
print i+1, line
====================================================================================================


On Apr 5, 12:03 pm, "Nick Cen" <cenyo...@gmail.com> wrote:
> >>> for i,v in enumerate(['a','b']):
>
> ... print i,v
> ...
> 0 a
> 1 b
>
>
>
> 2008/4/5 张沈鹏(电子科大 毕/就业倒计时...) <zsp...@gmail.com>:
>
>
>
>
>
> > for i in range(len(data)):
> > data[i]=xxx
>
> > 2008/4/5 David.D <dengyuanzh...@gmail.com>:
> > > 初学者问题:python的for如何获得当前循环次数?
> > > 我现在是这样做的:
> > > i = 0
> > > for item in data:
> > > ...
> > > i +=1
>
> > > 有更好的方法吗?谢谢。
>
> > --
> > 博客:http://zsp.javaeye.com/
> > 个人网站:http://zsp007.com.cn/
> > 电子科大,7月就要毕业了,何去何从...
> > 双学位:生物医学工程+计算机科学与技术
> > -- 张教主
>
> --http://candynick.vicp.net- Hide quoted text -
>
> - Show quoted text -

est

unread,
Apr 5, 2008, 2:54:12 AM4/5/08
to python-cn`CPyUG`华蟒用户组
顶啊

这个得对py内置函数相当熟悉才会用啊

On Apr 5, 12:03 pm, "Nick Cen" <cenyo...@gmail.com> wrote:
> >>> for i,v in enumerate(['a','b']):
>
> ... print i,v
> ...
> 0 a
> 1 b
>
>
>
> 2008/4/5 张沈鹏(电子科大 毕/就业倒计时...) <zsp...@gmail.com>:
>
>
>
>
>
> > for i in range(len(data)):
> > data[i]=xxx
>
> > 2008/4/5 David.D <dengyuanzh...@gmail.com>:
> > > 初学者问题:python的for如何获得当前循环次数?
> > > 我现在是这样做的:
> > > i = 0
> > > for item in data:
> > > ...
> > > i +=1
>
> > > 有更好的方法吗?谢谢。
>
> > --
> > 博客:http://zsp.javaeye.com/
> > 个人网站:http://zsp007.com.cn/
> > 电子科大,7月就要毕业了,何去何从...
> > 双学位:生物医学工程+计算机科学与技术
> > -- 张教主
>

CL (Ciu Loeng) Lam

unread,
Apr 5, 2008, 1:30:11 PM4/5/08
to pyth...@googlegroups.com
我还没留意到这个函数,好东西,又受教了

在08-4-5,est <electr...@gmail.com> 写道:

kindy

unread,
Apr 6, 2008, 10:21:36 AM4/6/08
to python-cn`CPyUG`华蟒用户组
for i, v in zip(range(len(data)), data):
print i,v


如果不知道 enumerate 函数的话,可以这样用,就是麻烦一些。
Reply all
Reply to author
Forward
0 new messages