인프런 커뮤니티 질문&답변

남기정님의 프로필 이미지
남기정

작성한 질문수

실리콘밸리 엔지니어가 가르치는 파이썬 기초부터 고급까지

코드 속도를 측정하는 timeit을 사용해 보기

return list(map(str, range(num)))

해결된 질문

작성

·

167

·

수정됨

1

return list(map(str, range(num)))

여기에서 range() 함수 자체가 iterator를 반환하나요?

그럼 예전 강의에서 list자료형을 넣었을때도 iterator를 반환했던걸까요...?

그리고 람다형식으로 lamda i:str(i) 가 아니라 str만 써도 되나요....??

그리고

t = timstmt = """

gen_num1(1000)

"""eit.timeit(stmt=stmt, setup=setup, number=10000)

stmt자체에 숫자몇번을 돌리라는 뜻이 이미 있는데 number=10000는 왜 또 쓰는건가요?

 

답변 1

0

미쿡엔지니어님의 프로필 이미지
미쿡엔지니어
지식공유자

안녕하세요 남기정님,

range() 함수는 iterable을 리턴하지만 iterator를 반환하지는 않습니다. 그래서 for 루프나 iterable을 받는 함수에 넣으시면 차례로 호출 가능합니다.

그리고 람다형식으로 lamda i:str(i) 가 아니라 str만 써도 되나요....?? <== 이건 무슨 질문인지 모르겠습니다만....

마지막으로 질문이 좀 혼돈되는데, number의 밑에 코드는 10,000번 그 함수를 호출해서 시간을 기록해 달라라는 뜻입니다.

timeit.timeit(stmt=stmt, setup=setup, number=10000)

 

남기정님의 프로필 이미지
남기정
질문자

아 제가 설명이 부족했네요..

return list(map(lamda i : str(i),range(num)) 이렇게 쓰는게 아닌가싶어서요

남기정님의 프로필 이미지
남기정
질문자

아직 궁금증이 해결안되었어요 ㅠ

미쿡엔지니어님의 프로필 이미지
미쿡엔지니어
지식공유자

네 문법만 좀 고치면 될 듯합니다.

return list(map(lambda i: str(i), range(num)))
남기정님의 프로필 이미지
남기정

작성한 질문수

질문하기