Als «python-internals» getaggte Fragen

Wie funktioniert Python unter der Haube? Verwendung für Fragen, die sich (zum Beispiel) auf die getroffenen Entwurfsentscheidungen und die verwendeten internen Datenstrukturen und Algorithmen beziehen.

4
Warum sind Pythons Arrays langsam?
Ich hatte erwartet array.array, schneller als Listen zu sein, da Arrays scheinbar nicht in der Box sind. Ich erhalte jedoch folgendes Ergebnis: 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 …





3
Warum ist es langsamer, über eine kleine Zeichenfolge zu iterieren als über eine kleine Liste?
Ich spielte mit Timeit herum und bemerkte, dass das einfache Verstehen einer Liste über eine kleine Zeichenfolge länger dauerte als das Ausführen derselben Operation für eine Liste kleiner einzelner Zeichenfolgen. Irgendeine Erklärung? Es ist fast 1,35-mal so viel Zeit. >>> from timeit import timeit >>> timeit("[x for x in 'abc']") …

1
Warum ist str.translate in Python 3.5 viel schneller als in Python 3.4?
Ich habe versucht, unerwünschte Zeichen mit text.translate()Python 3.4 aus einer bestimmten Zeichenfolge zu entfernen . Der minimale Code lautet: import sys s = 'abcde12345@#@$#%$' mapper = dict.fromkeys(i for i in range(sys.maxunicode) if chr(i) in '@#$') print(s.translate(mapper)) Es funktioniert wie erwartet. Das gleiche Programm, wenn es in Python 3.4 und Python …




4
Wann ist Hash (n) == n in Python?
Ich habe mit Pythons Hash-Funktion gespielt . Bei kleinen Ganzzahlen wird es hash(n) == nimmer angezeigt . Dies erstreckt sich jedoch nicht auf große Zahlen: >>> hash(2**100) == 2**100 False Ich bin nicht überrascht, ich verstehe, dass Hash einen endlichen Wertebereich hat. Was ist das für ein Bereich? Ich habe …

7
Wie überschreibe ich die Kopier- / Deepcopy-Operationen für ein Python-Objekt?
Ich verstehe den Unterschied zwischen copyvs. deepcopyim Kopiermodul. Ich habe copy.copyund copy.deepcopyzuvor erfolgreich verwendet, aber dies ist das erste Mal, dass ich die __copy__und __deepcopy__Methoden überladen habe . Ich habe schon gegoogelt um und sah durch die integrierten Python - Module für Instanzen des aussehen __copy__und __deepcopy__Funktionen (zB sets.py, decimal.pyund …


3
Warum ist max langsamer als sort?
Ich habe festgestellt, dass dies maxlangsamer ist als die sortFunktion in Python 2 und 3. Python 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 …

2
Wann werden .pyc-Dateien aktualisiert?
Ich verstehe, dass ".pyc" -Dateien kompilierte Versionen der Klartext ".py" -Dateien sind, die zur Laufzeit erstellt wurden, um die Ausführung von Programmen zu beschleunigen. Ich habe jedoch einige Dinge beobachtet: Beim Ändern von "py" -Dateien ändert sich das Programmverhalten. Dies zeigt an, dass die "py" -Dateien kompiliert werden oder zumindest …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.