Объединение нескольких списков в Python

PythonPythonBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В Python мы можем объединить два или более списков в один список с использованием различных методов. Одним из таких методов является объединение элементов из каждого входного списка на основе их позиций. В этом испытании вам будет поручено написать функцию, которая объединяет несколько списков в список списков.

Объединить списки

Напишите функцию под названием merge(*args, fill_value=None), которая принимает два или более списков в качестве аргументов и возвращает список списков. Функция должна объединять элементы из каждого входного списка на основе их позиций. Если список короче самого длинного списка, функция должна использовать fill_value для оставшихся элементов. Если fill_value не указан, по умолчанию должно быть None.

Ваша задача — реализовать функцию 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]]

Резюме

В этом испытании вы узнали, как объединить два или более списков в список списков в Python. Вы также узнали, как использовать функцию max(), списочное выражение и функцию range() для решения задачи. Не забудьте использовать параметр fill_value для заполнения пропущенных значений в более коротких списках.