I want to zip the following list of lists:
>>> zip([[1,2], [3,4], [5,6]]) [[1,3,5], [2,4,6]]
This could be achieved with the current zip
implementation only if the list is split into individual components:
>>> zip([1,2], [3,4], [5,6]) (1, 3, 5), (2, 4, 6)]
Can't figure out how to split the list and pass the individual elements to zip
. A functional solution is preferred.
Use zip() Function to Zip Two Lists in Python The zip() function can take any iterable as its argument. It's used to return a zip object which is also an iterator. The returned iterator is returned as a tuple like a list, a dictionary, or a set. In this tuple, the first elements of both iterables are paired together.
Python zip three lists Python zipping of three lists by using the zip() function with as many inputs iterables required. The length of the resulting tuples will always equal the number of iterables you pass as arguments.
zip() can accept any type of iterable, such as files, lists, tuples, dictionaries, sets, and so on.
Try this:
>>> zip(*[[1,2], [3,4], [5,6]]) [(1, 3, 5), (2, 4, 6)]
See Unpacking Argument Lists:
The reverse situation occurs when the arguments are already in a list or tuple but need to be unpacked for a function call requiring separate positional arguments. For instance, the built-in range() function expects separate start and stop arguments. If they are not available separately, write the function call with the *-operator to unpack the arguments out of a list or tuple:
>>> range(3, 6) # normal call with separate arguments [3, 4, 5] >>> args = [3, 6] >>> range(*args) # call with arguments unpacked from a list [3, 4, 5]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With