«python-internals» 태그된 질문

파이썬은 내부적으로 어떻게 작동합니까? (예를 들어) 설계 결정과 사용 된 내부 데이터 구조 및 알고리즘과 관련된 질문에 사용합니다.

4
왜 파이썬의 배열이 느립니까?
기대했다 array.array 배열이 언 박싱 것 같다로서, 빠른리스트보다 할 수 있습니다. 그러나 다음과 같은 결과가 나타납니다. In [1]: import array In [2]: L = list(range(100000000)) In [3]: A = array.array('l', range(100000000)) In [4]: %timeit sum(L) 1 loop, best of 3: 667 ms per loop In [5]: %timeit sum(A) 1 loop, …

4
파이썬의 인쇄 기능을 "해킹"할 수 있습니까?
참고 :이 질문은 정보 제공만을위한 것입니다. 파이썬의 내부에 얼마나 깊은 지 알고 싶습니다. 얼마 전까지 만해도 인쇄 문에 전달 된 문자열을 호출 한 후 / 변경하는 동안 수정 될 수 있는지에 대한 특정 질문 에서 논의가 시작 print되었습니다. 예를 들어, 다음 기능을 고려하십시오. def print_something(): print('This cat was scared.') 이제 …

6
사전에서 순서가 임의 인 이유는 무엇입니까?
사전을 반복하거나 파이썬으로 설정하는 것이 '임의'순서에 의해 어떻게 수행되는지 이해하지 못합니다. 내 말은, 그것은 프로그래밍 언어이므로 언어의 모든 것이 100 % 결정되어야합니까? 파이썬에는 사전이나 세트의 어느 부분이 1, 2 등으로 선택되는지를 결정하는 일종의 알고리즘이 있어야합니다. 내가 무엇을 놓치고 있습니까?


3
[* a]의 전반적인 원인은 무엇입니까?
분명히 전체적으로 분류list(a) 하지 않고 [x for x in a]어떤 시점에서 전체적으로[*a] 할당하고 항상 전체적으로 할당 합니까? 다음은 크기가 n에서 0부터 12까지이며 세 가지 방법에 대한 결과 크기는 바이트입니다. 0 56 56 56 1 64 88 88 2 72 88 96 3 80 88 104 4 88 88 112 5 …

3
작은 목록보다 작은 문자열을 반복하는 것이 왜 느린가요?
나는 timeit을 가지고 놀고 있었고 작은 문자열에 대한 간단한 목록 이해가 작은 단일 문자열 목록에서 동일한 작업을 수행하는 것보다 오래 걸린다는 것을 알았습니다. 어떤 설명? 거의 1.35 배나 많은 시간입니다. >>> from timeit import timeit >>> timeit("[x for x in 'abc']") 2.0691067844831528 >>> timeit("[x for x in ['a', 'b', 'c']]") …

1
str.translate가 Python 3.4에 비해 Python 3.5에서 훨씬 빠른 이유는 무엇입니까?
text.translate()Python 3.4에서 사용하여 주어진 문자열에서 원하지 않는 문자를 제거하려고했습니다 . 최소 코드는 다음과 같습니다. import sys s = 'abcde12345@#@$#%$' mapper = dict.fromkeys(i for i in range(sys.maxunicode) if chr(i) in '@#$') print(s.translate(mapper)) 예상대로 작동합니다. 그러나 Python 3.4와 Python 3.5에서 동일한 프로그램을 실행하면 큰 차이가 있습니다. 타이밍을 계산하는 코드는 다음과 같습니다. python3 …

2
파이썬은 반환 값으로 만 사용되는 변수를 최적화합니까?
다음 두 코드 스 니펫간에 궁극적 인 차이점이 있습니까? 첫 번째는 함수의 변수에 값을 할당 한 다음 해당 변수를 반환합니다. 두 번째 함수는 값을 직접 반환합니다. 파이썬은 그것들을 동등한 바이트 코드로 바꾸나요? 그들 중 하나가 더 빠릅니까? 사례 1 : def func(): a = 42 return a 사례 2 : …



7
Python 객체에 대한 복사 / 딥 카피 작업을 재정의하는 방법은 무엇입니까?
나는 사이의 차이를 이해 copy대 deepcopy복사 모듈을. 내가 사용했습니다 copy.copy및 copy.deepcopy이전을 성공적으로, 그러나 이것은 내가 실제로 과부하에 대해 갔어요 처음 __copy__과 __deepcopy__방법을. 이미 통해 주위 구글에서 보니 한의 인스턴스를 찾기 위해 파이썬 모듈 내장 __copy__및 __deepcopy__기능 (예를 들어 sets.py, decimal.py및 fractions.py),하지만 난 아직 100 % 확인 내가 잘있어 해요. 내 …

4
파이썬에서 hash (n) == n은 언제입니까?
저는 파이썬의 해시 함수를 가지고 놀았습니다 . 작은 정수의 경우 hash(n) == n항상 나타납니다 . 그러나 이것은 많은 수로 확장되지 않습니다. >>> hash(2**100) == 2**100 False 놀랍지 않습니다. 해시가 유한 한 범위의 값을 취한다는 것을 이해합니다. 그 범위는 무엇입니까? 이진 검색 을 사용 하여 가장 작은 숫자를 찾으려고했습니다.hash(n) != n …

1
tuple (set ([1, "a", "b", "c", "z", "f"])) == tuple (set ([ "a", "b", "c", "z", "f", 1])) 해시 무작위 화가 활성화 된 시간의 85 %?
다른 질문에 대한 제로 피레 우스 '대답을 감안할 때 , 우리는이 x = tuple(set([1, "a", "b", "c", "z", "f"])) y = tuple(set(["a", "b", "c", "z", "f", 1])) print(x == y) 해시 무작위 화가 활성화 된 상태 True에서 약 85 %의 시간을 인쇄 합니다. 왜 85 %입니까?

3
최대가 정렬보다 느린 이유는 무엇입니까?
나는 그것이 파이썬 2와 3 max의 sort함수 보다 느리다 는 것을 발견했습니다 . 파이썬 2 $ python -m timeit -s 'import random;a=range(10000);random.shuffle(a)' 'a.sort();a[-1]' 1000 loops, best of 3: 239 usec per loop $ python -m timeit -s 'import random;a=range(10000);random.shuffle(a)' 'max(a)' 1000 loops, best of 3: 342 usec per loop 파이썬 …

2
.pyc 파일은 언제 새로 고침 되나요?
".pyc"파일은 일반 텍스트 ".py"파일의 컴파일 된 버전으로, 프로그램을 더 빠르게 실행하기 위해 런타임에 생성된다는 것을 알고 있습니다. 그러나 나는 몇 가지를 관찰했습니다. "py"파일을 수정하면 프로그램 동작이 변경됩니다. 이것은 "py"파일이 컴파일되거나 적어도 일종의 해싱 프로세스를 거치거나 다시 컴파일해야하는지 여부를 알려주기 위해 타임 스탬프를 비교한다는 것을 나타냅니다. 모든 ".pyc"파일 ( rm *.pyc) …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.