Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

다중 목록에서 동일한 인덱스의 Python 그룹 요소

<시간/>

이 자습서에서는 동일한 인덱스의 다른 목록 요소를 단일 목록으로 결합하는 프로그램을 작성할 것입니다. 그리고 여기에는 한 가지 제약이 있습니다. 모든 목록은 길이가 같아야 합니다. 좀 더 명확하게 이해하기 위해 예를 들어 보겠습니다.

입력

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

지도를 사용했습니다. 목록을 반복하고 각 튜플을 목록으로 변환합니다. 루프와 동일한 작업을 수행할 수 있습니다. 사용해 보세요.

결론

튜토리얼에 의문점이 있으면 댓글 섹션에 언급하세요.