Python:带有两个变量的C for循环
我是
python的新手.有没有类似的方法在python中用2个变量编写这个C for循环?
for (i = 0,j = 20; i != j; i++,j--) { ... } 解决方法
Python 2.x
from itertools import izip,count for i,j in izip(count(0,1),count(20,-1)): if i == j: break # do stuff Python 3.x: from itertools import count for i,j in zip(count(0,-1)): if i == j: break # do stuff 这使用itertools.count(),它是一个无限期地从某个起始点迭代的迭代器:
在Python 2.x中你必须使用izip,因为Py2K zip尝试创建所有结果的列表,而不是izip,它会在获得结果时返回迭代器.不幸的是我们在这里处理无限迭代器所以zip不起作用…这可能是一个很好的点,为什么zip已被更改为在Py3K中执行izip的角色(izip不再存在). 如果你对功能感到疯狂,你甚至可以做到这一点(但在我看来,因为我已经成长为讨厌lambdas而看起来很难看): from itertools import takewhile,izip,j in takewhile(lambda x: x[0] != x[1],izip(count(0,-1))): # do stuff (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |