데이터 분석은 데이터를 이동하기 위해 랭글링해야 하는 복잡한 시나리오를 던집니다. 이 맥락에서 큰 목록을 요구 사항에 따라 많은 하위 목록으로 분할하는 방법을 살펴보겠습니다. 이 기사에서는 이를 달성하기 위한 접근 방식을 살펴보겠습니다.
zip 및 for 루프 사용
이 접근 방식에서 우리는 분할이 발생해야 하는 지점에서 요소를 가져오기 위해 목록 다이싱을 사용합니다. 그런 다음 zip 및 for 루프를 사용하여 for 루프를 사용하여 하위 목록을 만듭니다.
예
Alist = ['Mon', 'Tue', 'Wed', 6, 7, 'Thu', 'Fri', 11, 21, 4] # The indexes to split at split_points = [2, 5, 8] # Given list print("Given list : " + str(Alist)) # SPlit at print("The points of splitting : ",split_points) #Perform the split split_list = [Alist[i: j] for i, j in zip([0] + split_points, split_points + [None])] # printing result print("The split lists are : ", split_list)
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
Given list : ['Mon', 'Tue', 'Wed', 6, 7, 'Thu', 'Fri', 11, 21, 4] The points of splitting : [2, 5, 8] The split lists are : [['Mon', 'Tue'], ['Wed', 6, 7], ['Thu', 'Fri', 11], [21, 4]]
체인 및 지퍼 사용
chain 함수는 첫 번째 요소에서 요소를 반환하는 반복자를 소진될 때까지 반복 가능하게 만듭니다. 따라서 분할이 발생하는 지점을 표시합니다. 그런 다음 zip 함수를 사용하여 분할 결과를 하위 목록으로 패키징합니다.
예
from itertools import chain Alist = ['Mon', 'Tue', 'Wed', 6, 7, 'Thu', 'Fri', 11, 21, 4] # The indexes to split at split_points = [2, 5, 8] # Given list print("Given list : ", str(Alist)) # Split at print("The points of splitting : ",split_points) # to perform custom list split sublists = zip(chain([0], split_points), chain(split_points, [None])) split_list = list(Alist[i : j] for i, j in sublists) # printing result print("The split lists are : ", split_list)
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
Given list : ['Mon', 'Tue', 'Wed', 6, 7, 'Thu', 'Fri', 11, 21, 4] The points of splitting : [2, 5, 8] The split lists are : [['Mon', 'Tue'], ['Wed', 6, 7], ['Thu', 'Fri', 11], [21, 4]]