본문 바로가기

ListMethods10.2

Python 항상 xrange()를 range()보다 선호해야 하나요?, Should you always favor xrange() over range()? 질문 왜 그런지 아니면 왜 그렇지 않은지? 답변 성능을 위해서 특히 큰 범위를 반복하는 경우, xrange()가 일반적으로 더 좋습니다. 그러나 여전히 몇 가지 경우에는 range()를 선호할 수 있습니다: 파이썬 3에서 range()는 예전에 xrange()가 하던 일을 하고, xrange()는 존재하지 않습니다. Python 2와 Python 3에서 모두 실행될 코드를 작성하려면 xrange()를 사용할 수 없습니다. 일부 경우에는 range()가 실제로 더 빠를 수 있습니다. 예를 들어, 동일한 시퀀스를 여러 번 반복하는 경우입니다. xrange()는 매번 정수 객체를 재구성해야 하지만, range()는 실제 정수 객체를 가지고 있을 것입니다. (그러나 메모리 관점에서는 항상 더 나쁜 성능을 보일 .. 2023. 11. 13.
Python 제너레이터 표현식 대 리스트 내장, Generator expressions vs. list comprehensions 질문 파이썬에서 제너레이터 표현식과 리스트 컴프리헨션을 언제 사용해야 할까요? # 제너레이터 표현식 (x*2 for x in range(256)) # 리스트 컴프리헨션 [x*2 for x in range(256)] 답변 John의 답변은 좋습니다 (리스트 컴프리헨션은 여러 번 반복해야 할 때 더 좋습니다). 그러나 리스트 메소드를 사용하려면 리스트를 사용해야 한다는 점도 유의해야 합니다. 예를 들어, 다음 코드는 작동하지 않습니다: def gen(): return (something for something in get_some_stuff()) print gen()[:2] # 제너레이터는 인덱싱이나 슬라이싱을 지원하지 않습니다 print [5,6] + gen() # 제너레이터는 리스트에 추가할 수 없습니.. 2023. 10. 13.