Python add two lists different length
Often you might be interested in zipping (or merging) together two lists in Python. Fortunately this is easy to do using the zip() function. Show This tutorial shows several examples of how to use this function in practice. Example 1: Zip Two Lists of Equal Length into One ListThe following syntax shows how to zip together two lists of equal length into one list: #define list a and list b a = ['a', 'b', 'c'] b = [1, 2, 3] #zip the two lists together into one list list(zip(a, b)) [('a', 1), ('b', 2), ('c', 3)]Example 2: Zip Two Lists of Equal Length into a DictionaryThe following syntax shows how to zip together two lists of equal length into a dictionary: Example 3: Zip Two Lists of Unequal LengthIf your two lists have unequal length, zip() will truncate to the length of the shortest list: #define list a and list b a = ['a', 'b', 'c', 'd'] b = [1, 2, 3] #zip the two lists together into one list list(zip(a, b)) [('a', 1), ('b', 2), ('c', 3)]If youd like to prevent zip() from truncating to the length of the shortest list, you can instead use the zip_longest() function from the itertools library. By default, this function fills in a value of None for missing values: from itertools import zip_longest #define list a and list b a = ['a', 'b', 'c', 'd'] b = [1, 2, 3] #zip the two lists together without truncating to length of shortest list list(zip_longest(a, b)) [('a', 1), ('b', 2), ('c', 3), ('d', None)]However, you can use thefillvalueargument to specify a different fill value to use: #define list a and list b a = ['a', 'b', 'c', 'd'] b = [1, 2, 3] #zip the two lists together, using fill value of '0' list(zip_longest(a, b, fillvalue=0)) [('a', 1), ('b', 2), ('c', 3), ('d', 0)]You can find the complete documentation for the zip_longest() function here. |