Zipping Lists in Python: Size Mismatch Clarification
When attempting to zip multiple lists together, one may encounter unexpected behavior regarding the resulting list size. This article addresses a common misconception and provides a clear understanding of how zip() functions in Python.
Initially, a program attempting to zip three lists of size 20 may anticipate a result list of size three. However, the resulting zipall list instead contains 20 elements. This discrepancy occurs because zip() does not concatenate the lists; instead, it creates a list of tuples, each tuple containing the corresponding elements from the original lists.
Consider the following example:
a = b = c = range(20) zipall = zip(a, b, c)
The output zipall list will have 20 elements, each element being a tuple of the form (a_element, b_element, c_element):
[(0, 0, 0), (1, 1, 1), ... (17, 17, 17), (18, 18, 18), (19, 19, 19)]
Therefore, to determine the number of elements within each tuple, one can examine the length of any of these elements:
len(zipall[0])
This will return a length of 3, indicating that each tuple contains three elements.
Note that if the original lists were empty, the len(zipall) expression would return 0, as an empty list does not have any elements to zip with.
The above is the detailed content of Why Does Zipping Lists in Python Result in a List of Tuples, Not a Concatenated List?. For more information, please follow other related articles on the PHP Chinese website!