티스토리 뷰
[파이썬] List 원하는 길이만큼 나누기 원하는 덩어리로 나누기 (python : divide list in N parts)
JC story 2022. 8. 25. 08:54안녕하세요 종백이입니다😎
최근 사용하는 API 가 느려서 어떻게 하면 빠르게 할 수 있을까 생각을 하고 있는 도중 전송 데이터를 list 형태로 줘도 작동하는 것을 알아서 list 최대 길이만큼 전송을 해주려고 합니다.
전송할 수 있는 list의 최대 길이는 1000 개였고 1000개 단위로 list를 분할하는 것 그리고 추가로 N 개 덩어리로 list를 분할하는 법에 대해서도 알아보겠습니다.
사용되는 모듈은 numpy에 있는 array_split()입니다.
import numpy as np
totalList = [1,2,3,4,5,6,7,8,9,10]
n = 2
if len(totalList)%n == 0:
divideNum = int(len(totalList)/n)
else :
divideNum = int(len(totalList)/n)+1
divided = np.array_split(totalList,divideNum)
위 코드는 10개의 리스트를 2개 단위로 나누는 것입니다. array_split 속 인자는 분해할 리스트, 분해할 덩어리 수 가 들어가야 합니다. 몇 덩이로 분해할 수 있는지만 나와있습니다.
분해할 리스트와 분해하고 싶은 길이를 나눠서 정수로 딱 떨어지면 그 값 그대로 사용하시면 되고 그게 아니면 int는 내림 효과가 있기 때문에 1을 더해주셔야 합니다.
위 코드를 돌려보면 결괏값이 다음과 같이 나옵니다.
numpy의 arry상태 이므로 [x.tolist() for x in divided]를 하면 list 형태로 얻을 수 있습니다.
만약 2403 길이의 list를 1000개씩 나누면 3덩어리가 나오겠죠?!
import numpy as np
totalList = range(1,2403)
n = 1000
if len(totalList)%n == 0:
divideNum = int(len(totalList)/n)
else :
divideNum = int(len(totalList)/n)+1
divided = np.array_split(totalList,divideNum)
이런 방식으로 list를 원하는 길이로 나눌 수 있습니다!
혹시 numpy 모듈을 사용하기 싫으신 분들은 range를 통해 divideNum만큼 list를 만들고 for 문을 통해 슬라이싱 하시면 됩니다 ㅎㅎ 혹시 이 방법을 구체적으로 알고 싶으신 분들은 댓글 부탁드립니다!
글 내용이 도움되셨다면 구독 또는 좋아요 부탁드립니다~
더 많은 정보와 리뷰를 원하시면 여기로!
모바일은 여기로!
'독학' 카테고리의 다른 글
[파이썬] cmd 커맨드창 progress bar 생성하기 tqdm (0) | 2022.09.16 |
---|---|
컴알못 갑분 컴퓨터 조립 리뷰: CPU 메인보드 고르는 방법 (2) | 2022.01.29 |
[파이썬] 경쟁력있는 상품 소싱방법 : 리뷰 분석 프로그램 (형태소 분석) (0) | 2021.11.10 |
[파이썬] 스마트스토어 쿠팡 대표이미지 화면 캡처 프로그램 (무료 나눔) (8) | 2021.10.04 |
[프로그래머로 살아남기] 약손명가 인기지점이 어디일까? (0) | 2021.10.01 |
- Total
- Today
- Yesterday
- CNC업그레이드
- javascript
- JS독학
- 상위노출프로그램
- 파이썬독학
- javascript독학
- 그림독학
- 인플레이션
- 파이썬
- 자바스크립트독학
- 주식독학
- 웹앱독학
- GRBL
- 수부지추천
- 브리타정수기
- 눈시림없는선크림
- flutter네이버커머스api
- selenium
- 경매참고자료
- 주식분석
- 책리뷰
- 네이버커머스api
- 프로그래밍독학
- 파이썬셀레니움
- 주식시장거품
- 책추천
- 파이썬실전
- 주식종목
- 제로이드
- 경매동향
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |