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