Python 에서 여러 리스트 병합하기

Beginner

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() 함수, 리스트 컴프리헨션 (list comprehension), 그리고 range() 함수를 사용하는 방법도 배웠습니다. 더 짧은 리스트의 누락된 값을 채우기 위해 fill_value 매개변수를 사용하는 것을 기억하세요.