Introdução
Em Python, podemos fundir duas ou mais listas em uma única lista usando vários métodos. Um desses métodos é combinar elementos de cada uma das listas de entrada com base em suas posições. Neste desafio, você terá a tarefa de escrever uma função que funde múltiplas listas em uma lista de listas.
Fundir Listas
Escreva uma função chamada merge(*args, fill_value=None) que recebe duas ou mais listas como argumentos e retorna uma lista de listas. A função deve combinar elementos de cada uma das listas de entrada com base em suas posições. Se uma lista for menor que a lista mais longa, a função deve usar fill_value para os itens restantes. Se fill_value não for fornecido, ele deve ser definido como None por padrão.
Sua tarefa é implementar a função merge().
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]]
Resumo
Neste desafio, você aprendeu como fundir duas ou mais listas em uma lista de listas em Python. Você também aprendeu como usar a função max(), list comprehension (compreensão de lista) e a função range() para resolver o problema. Lembre-se de usar o parâmetro fill_value para preencher os valores ausentes nas listas mais curtas.