# Merge lists

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 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]]```

## More like this

• Python ·

### List difference based on function

Returns the difference between two lists, after applying the provided function to each list element of both.

• Python ·

### List symmetric difference based on function

Returns the symmetric difference between two lists, after applying the provided function to each list element of both.

• Python ·

### List union based on function

Returns every element that exists in any of the two lists once, after applying the provided function to each element of both.

• Python ·

### Count grouped elements

Groups the elements of a list based on the given function and returns the count of elements in each group.

Start typing a keyphrase to see matching snippets.