리스트를 나누는 방법에는 여러 가지가 있습니다. 가장 일반적인 방법은 for 루프를 사용하는 것입니다.
다음은 for 루프를 사용하여 리스트를 1000개씩 나누는 코드입니다.
for문 사용
index = [row.index[i * 1000:(i + 1) * 1000].tolist() for i in range(0, int(len(row.index) / 1000))]
이 코드는 다음과 같이 작동합니다.
- range() 함수를 사용하여 0부터 len(row.index) / 1000 미만의 값을 생성합니다.
- for 루프를 사용하여 생성된 값을 순회합니다.
- i * 1000부터 (i + 1) * 1000까지의 인덱스 값을 가져옵니다.
- 가져온 인덱스 값을 리스트로 변환합니다.
- 변환된 리스트를 index 리스트에 추가합니다.
이 코드는 작동하지만 효율적이지 않습니다. for 루프를 사용하는 경우 각 반복마다 row.index 리스트를 처음부터 끝까지 순회해야 합니다. 이는 메모리와 CPU 사용량을 증가시킬 수 있습니다.
NumPy 사용
NumPy는 과학 계산을 위한 파이썬 라이브러리입니다. NumPy는 리스트 나누기 기능을 제공합니다. 다음은 NumPy를 사용하여 리스트를 1000개씩 나누는 코드입니다.
import numpy as np
index = np.array_split(row.index, len(row.index) / 1000)
index = [chunk.tolist() for chunk in index]
이 코드는 다음과 같이 작동합니다.
- np.array_split() 함수를 사용하여 row.index 리스트를 1000개씩 나눕니다.
- tolist() 메서드를 사용하여 반환된 NumPy 배열을 리스트로 변환합니다.
이 코드는 for 루프를 사용하지 않기 때문에 효율적입니다. np.array_split() 함수는 row.index 리스트를 한 번만 순회하여 1000개의 리스트를 생성합니다. 따라서 메모리와 CPU 사용량을 줄일 수 있습니다.
'파이썬 > Basic' 카테고리의 다른 글
requests : 간편한 HTTP 요청 (0) | 2024.02.05 |
---|---|
파이썬 리스트 컴프리헨션 (0) | 2024.02.01 |
문자열 공백 제거하기 (1) | 2024.01.27 |
딕셔너리에 키값을 검사하는 방법 (0) | 2024.01.25 |
빈 시퀀스(String, Tuple, List) 확인하기 (0) | 2024.01.13 |