이 자습서에서는 동일한 인덱스의 다른 목록 요소를 단일 목록으로 결합하는 프로그램을 작성할 것입니다. 그리고 여기에는 한 가지 제약이 있습니다. 모든 목록은 길이가 같아야 합니다. 좀 더 명확하게 이해하기 위해 예를 들어 보겠습니다.
입력
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
출력
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
다양한 방법으로 해결할 수 있습니다. 일반 루프로 해결하는 방법을 살펴보겠습니다.
- 목록으로 목록을 초기화합니다.
- 빈 목록을 초기화합니다.
- 변수 색인 초기화 0.
- 하위 목록 길이만큼 반복
- 이전 목록에 빈 목록 추가
- 목록 길이 시간을 반복합니다.
- **결과[색인]에 **목록[현재_색인][색인]** 추가
- 결과를 인쇄합니다.
예
# initializing the list lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # empty list result = [] # variable to 0 index = 0 # iterating over the sub_list length (3) times for i in range(len(lists[0])): # appending an empty sub_list result.append([]) # iterating lists length (3) times for j in range(len(lists)): # adding the element to the result result[index].append(lists[j][index]) # moving to the next index index += 1 # printing the result print(result)
출력
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
zip을 사용하여 해결할 수 있습니다. 아무 노력 없이 작동합니다. zip 함수는 우리가 원하는 대로 튜플의 모든 인덱스 요소를 제공합니다. 코드를 봅시다.
예
# initializing the list lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # using the zip and printing it print(list(zip(*lists)))
출력
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
목록을 반복하여 튜플을 목록으로 변환할 수 있습니다. 다르게 할 수 있습니다. map이라는 다른 기능을 사용합니다. 모든 튜플을 목록으로 변환합니다. 한 줄짜리 코드입니다.
예
# initializing the list lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # using the zip and printing it print(list(map(list, zip(*lists))))
출력
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
지도를 사용했습니다. 목록을 반복하고 각 튜플을 목록으로 변환합니다. 루프와 동일한 작업을 수행할 수 있습니다. 사용해 보세요.
결론
튜토리얼에 의문점이 있으면 댓글 섹션에 언급하세요.