Merge
Merges two or more lists into a list of lists, combining elements from each of the input lists based on their positions.
Use max()
combined with a list comprehension to get the length of the longest list in the arguments.
Use range()
in combination with the max_length
variable to loop as many times as there are elements in the longest list.
If a list is shorter than 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 resultExamplesmerge(['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]]
Sign for comment
You can write your questions about the subject below.
LoginYour information is only used to display your name and reply by email.
- M.samet.28 Jun 2021 at 8:34 AMthis comment in python