파이썬질문

파이썬질문

QA

파이썬질문

본문

from tqdm import tqdm

 

list = [원소1, 원소2, 원소3, ...]
for cnt, i in tqdm(enumerate(list)):
내용

 

실행하면 진행률이 표시되지않는데 어떻게하면 되죠?

이 질문에 댓글 쓰기 :

답변 1

안녕하세요? ^^

 

질문하신 취지가 for문에 enumerate를 사용하면 tqdm의 프로그레스 바가 표시되지 않는다는 말씀이시죠?

 

https://github.com/tqdm/tqdm/issues/157 여기에도 비슷한 이슈가 올라와 있네요~

 


tqdm 모듈은 시간을 측정하기 전에 iterable한 객체의 길이가 확인되어야 제대로 작동합니다.

 

list는 그 자체로 iterable한 객체인 반면, enumerate(list)는 그렇지 않습니다 ㅠㅠ

 

이는 len(enumerate(list)를 실행하면 에러가 발생하는 점을 통해 확인할 수 있습니다.

 

 

따라서 다음과 같이 enumerate 안에 tqdm을 넣으셔야 프로그레스 바가 제대로 표시됩니다 ^^

 


for cnt, i in enumerate(tqdm(list)):

 

 

굳이 tqdm을 밖으로 빼고 싶으시다면 다음과 같이 처리할 수도 있습니다 :)

 


for cnt, i in tqdm(enumerate(list), total=len(list)):

 

 

참고로 위와 같은 문제는 enumerate() 뿐만 아니라 zip() 함수의 경우에도 발생합니다.

 

그럼 즐거운 주말 저녁 되세요~ ^-^

답변을 작성하시기 전에 로그인 해주세요.
전체 209
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT