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

Python에서 사용자 지정 목록 분할

<시간/>

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

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