zip broken?
Marek "Baczek" Baczyński
imbaczek at poczta.onet.pl
Sat Jun 7 17:19:05 EDT 2003
Hello Pythonistas,
I found a behaviour of zip() which I don't like -- it hangs on
infinite generators. Consider this code:
#v+
def my_zip(*args):
while 1:
yield tuple([l.next() for l in args])
def check_if_blocks(vy, g, h, hmin, hmax):
# this won't ever stop vvv
# for t, (y1, y2) in enumerate(zip(hmin, hmax)):
for t, (y1, y2) in enumerate(my_zip(hmin, hmax)):
t += 1
y = -g*t*t/2 + vy*t + h
if y1 >= y or y >= y2:
return (t,y)
print "%d: %d < %d < %d"%(t, y1, y, y2)
return (t,y)
def numbers(x):
while 1:
yield x
def main():
check_if_blocks(10, 1, 5, numbers(5), numbers(60))
if __name__ == '__main__':
main()
#v-
--
{ Marek Baczyński :: UIN 57114871 :: GG 161671 :: JID imbaczek at jabber.gda.pl }
{ http://www.vlo.ids.gda.pl/ | imbaczek at poczta fm | http://www.promode.org }
.. .. .. .. ... ... ...... evolve or face extinction ...... ... ... .. .. .. ..
More information about the Python-list
mailing list