본문 바로가기

integerobjects7.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 "정수와 함께 'is' 연산자는 예상치 못한 방식으로 작동합니다.", "is" operator behaves unexpectedly with integers 질문 다음의 코드는 파이썬에서 예상치 못한 동작을 하는 이유는 무엇인가요? >>> a = 256 >>> b = 256 >>> a is b True # 이는 예상한 결과입니다 >>> a = 257 >>> b = 257 >>> a is b False # 여기서 무슨 일이 일어났나요? 왜 False인가요? >>> 257 is 257 True # 그럼에도 불구하고 리터럴 숫자는 제대로 비교됩니다 저는 Python 2.5.2를 사용하고 있습니다. Python의 다른 버전을 몇 가지 시도해보면, Python 2.3.3에서는 99와 100 사이에서 위와 같은 동작을 보입니다. 위를 기반으로 가설을 세울 수 있습니다. 파이썬은 "작은" 정수와 큰 정수를 다른 방식으로 저장하는 내부 구현을 하고 있으며, is 연산자는 .. 2023. 9. 10.