It is common to express for loops as list comprehensions:
mylist=[]
for i in range(30):
mylist.append(i**2)
这相当于:
mylist = [i**2 for i in range(30)]
是否存在一种机制,通过这种机制可以同时进行循环?
mylist=[]
i=0
while i<30:
mylist.append(i**2)
i+=1
当然,从这个简单的例子来看,很容易将“<>条码/条码>格式”改为“(条码>)”,然后改为“理解”清单,但“如果它如此容易”?
e.g.
mylist = [i**2 while i=0;i<30;i++ ]
(当然,上述伪装编码为合法假冒)(itertools
) 想到这种事情,但我不知道这一模块是可怕的。
http://www.ohchr.org。
An (very simple) example where I think a while comprehension would be useful would be:
dt=0.05
t=0
mytimes=[]
while t<maxtime:
mytimes.append(t)
t+=dt
这可转化为:
dt=0.05
t=0
nsteps=maxtime/dt
mytimes=[]
for t in (i*dt for i in xrange(nsteps)):
mytimes.append(t)
可作为(详细)清单书写:
nsteps=maxtime/dt
mytimes=[t for t in (i*dt for i in xrange(nsteps)]
但我想,虽然休息时间是MUCH更容易读(没有指数错误) 另外,如果您的反对(dt)支持+,但不是*? 如果<代码>最大时间,就会出现更为复杂的事例。 a. 每一轮休息时间的变化......