On 2015-08-25 16:59, Jean-Michel Pichavant wrote:
> ----- Original Message -----
> > From: "Joel Goldstick" <joel.goldst...@gmail.com>
> > its called list unpacking or packing (?)
> > 
> > the right side is considered a tuple because of the commas
> > >>> a = 1,2,3
> > >>> a
> > (1, 2, 3)
> > >>> a[1]
> > 2
> 
> To add to Joel's answer, the right side can be *any* sequence, and
> is not restricted to lists or tuples.
> 
> a, b, c = (x for x in range(3)) # a generator for instance

Since range() *is* a generator, why not just use

    a, b, c = range(3)

I do this often for setting constants:

   (
   HR_FILE,
   PHONE_FILE,
   COST_CENTERS_FILE,
   ) = range(3)

however I have to keep track of how many entries are in there.  When
Py3 introduced variable tuple unpacking, I'd hoped the last one
wouldn't consume generators, allowing me to do something like

   (
   HR_FILE,
   PHONE_FILE,
   COST_CENTERS,
   *_
   ) = itertools.count()

so I could insert additional constants and have the list
automatically adjust.  Alas, no such joy.  The new Enum class does
offer an auto-number functionality, but it's clunky, IMHO.

https://docs.python.org/3/library/enum.html#autonumber 


-tkc



-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to