[Python-Dev] re: Sets BOF / for in dict

M.-A. Lemburg mal@lemburg.com
Mon, 05 Feb 2001 12:08:41 +0100


Greg Wilson wrote:
> 
> I've spoken with Barbara Fuller (IPC9 org.); the two openings for a
> BOF on sets are breakfast or lunch on Wednesday the 7th.  I'd prefer
> breakfast (less chance of me missing my flight :-); is there anyone
> who's interested in attending who *can't* make that time, but *could*
> make lunch?

Depends on the time frame of "breakfast" ;-)
 
> And meanwhile:
> 
> > Ka-Ping Yee:
> >     - the key:value syntax suggested by Guido (i like it quite a lot)
> 
> Greg Wilson:
> Did another quick poll; feeling here is that if
> 
>     for key:value in dict:
> 
> works, then:
> 
>     for index:value in sequence:
> 
> would also be expected to work.  If the keys to the dictionary are (for
> example) 2-element tuples, then:
> 
>     for (left, right):value in dict:
> 
> would also be expected to work, just as:
> 
>     for ((left, right), value) in dict.items():
> 
> now works.
> 
> Question: would the current proposal allow NumPy arrays (just as an
> example) to support both:
> 
>     for index:value in numPyArray:
> 
> where 'index' would get tuples like '(0, 3, 2)' for a 3D array, *and*
> 
>     for (i, j, k):value in numPyArray:
> 
> If so, then yeah, it would tidy up a fair bit of my code...

Two things: 

1. the proposed syntax key:value does away with the
   easy to parse Python block statement syntax

2. why can't we use the old 'for x,y,z in something:' syntax
   and instead add iterators to the objects in question ?

   for key, value in object.iterator():
      ...
  
   this doesn't only look better, it also allows having different
   iterators for different tasks (e.g. to iterate over values, key,
   items, row in a matrix, etc.)

-- 
Marc-Andre Lemburg
______________________________________________________________________
Company:                                        http://www.egenix.com/
Consulting:                                    http://www.lemburg.com/
Python Pages:                           http://www.lemburg.com/python/