Merges two or more lists into a list of lists, combining elements from each of the input lists based on their positions.
max()
combined with a list comprehension to get the length of the longest list in the arguments.range()
in combination with the max_length
variable to loop as many times as there are elements in the longest list.max_length
, use fill_value
for the remaining items (defaults to None
).zip()
and itertools.zip_longest()
provide similar functionality to this snippet.def merge(*args, fill_value = None):
max_length = max([len(lst) for lst in args])
result = []
for i in range(max_length):
result.append([
args[k][i] if i < len(args[k]) else fill_value for k in range(len(args))
])
return result
merge(['a', 'b'], [1, 2], [True, False]) # [['a', 1, True], ['b', 2, False]]
merge(['a'], [1, 2], [True, False]) # [['a', 1, True], [None, 2, False]]
merge(['a'], [1, 2], [True, False], fill_value = '_')
# [['a', 1, True], ['_', 2, False]]
Python, List
Returns the difference between two lists, after applying the provided function to each list element of both.
Python, List
Returns the symmetric difference between two lists, after applying the provided function to each list element of both.
Python, List
Returns every element that exists in any of the two lists once, after applying the provided function to each element of both.