데이터 분석은 데이터를 이동하기 위해 랭글링해야 하는 복잡한 시나리오를 던집니다. 이 맥락에서 큰 목록을 요구 사항에 따라 많은 하위 목록으로 분할하는 방법을 살펴보겠습니다. 이 기사에서는 이를 달성하기 위한 접근 방식을 살펴보겠습니다.
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]]