[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

I have looked at generators, generator expressions, and iterators and I try to get more familiar with these. 1. How would I loop over all (with no upper bound) integers or all powers of two, for example? In C it would be for (int i = 0; ; i++) { ... } or for (int i = 1; ; i *= 2) { ... } In Python, I could define a generator def powers(): i = 1 while True: yield(i) i *= 2 for i in powers(): ... More elegant are generator expressions but I cannot think of a way without giving an upper limit: for i in (2 ** i for i in range(1000000)): ... which looks ugly. Also, the double for-loop (and also the two loops in the above exmaple, for + while in the generator) look unnatural, somehow, i.e. loop over all elements which are created by a loop. Is there a more beautyful way? Steve

- Prev by Date:
**Why do integers compare equal to booleans?** - Next by Date:
**Generators, generator expressions, and loops** - Previous by thread:
**Why do integers compare equal to booleans?** - Next by thread:
**Generators, generator expressions, and loops** - Index(es):