Zac Burns wrote:
There is a problem with this however, which prompted me to actually
write an unzip function.

One might expect to be able to do something like so (pseudocode)...

def filesAndAttributes():
   files = walk()
   attributes = [attr(f) for f in files]
   return zip(files, attributes)

You could do away with that zip and just let the list comprehension return tuples.

    [(f, attr(f)) for f in walker()]

files, attributes = zip(*filesAndAttributes())

The corner case is when dealing with empty lists and there aren't
enough items to unpack.

Can you give a concrete example?

The unzip function therefore has an elementsForEmpty keyword that
handles this case. Perhaps something like this could be added to zip?

The built-in zip stops when any of the given iterables stops. The itertools module has izip_longest (or zip_longest in Python 3), which takes a fillvalue argument. Perhaps that's what you want?


--
--Bryan
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to