Pythonic infinite for loop?
steve+comp.lang.python at pearwood.info
Fri Apr 15 04:33:46 CEST 2011
On Fri, 15 Apr 2011 12:10:52 +1000, Chris Angelico wrote:
> Apologies for interrupting the vital off-topic discussion, but I have a
> real Python question to ask.
Sorry, you'll in the wrong forum for that.
> My first draft looks something like this. The input dictionary is called
> dct, the output list is lst.
> for i in xrange(1,10000000): # arbitrary top, don't like this
> except KeyError:
> I'm wondering two things. One, is there a way to make an xrange object
> and leave the top off?
No. But you can use an itertools.count([start=0]) object, and then catch
the KeyError when you pass the end of the dict. But assuming keys are
consecutive, better to do this:
lst = [parse_kwdlist(dct["Keyword%d"%i]) for i in xrange(1, len(dct)+1)]
If you don't care about the order of the results:
lst = [parse_kwdlist(value) for value in dct.values()]
More information about the Python-list