Tag: python-internals

Wie funktioniert die Python arbeiten unter der Haube? Verwenden Sie bei Fragen zu (zum Beispiel) die design-Entscheidungen und die internen Datenstrukturen und algorithmen verwendet.

Warum tuple(set([1,"a","b","c","z","f"])) == tuple(set(["a","b","c","z","f",1])) 85% der Zeit mit hash-randomization aktiviert?

Anzahl der Antworten 1 Antworten
Angesichts Null Piräus Antwort auf eine andere Frage, die wir haben, dass x = tuple(set([1, "a", "b", "c", "z", "f"])) y = tuple(set(["a", "b", "c", "z", "f", 1])) print(x == y) Drucke True etwa 85% der Zeit

Warum ist der code, mit zwischenvariablen schneller als code, der auch ohne?

Anzahl der Antworten 2 Antworten
Dem ich begegnet bin, dieses seltsame Verhalten und versäumt, es zu erklären. Dies sind die benchmarks: py -3 -m timeit "tuple(range(2000)) == tuple(range(2000))" 10000 loops, best of 3: 97.7 usec per loop py -3 -m timeit "a

Warum ist die Größe der 2⁶3 36 bytes, aber 2⁶3-1 ist nur 24 Byte?

Anzahl der Antworten 2 Antworten
Alles in Python ist ein Objekt. Also die Größe von int in Python größer sein wird als üblich. >>> sys.getsizeof(int()) 24 OK, aber warum dauert es noch 12 weitere bytes für 2⁶³ im Vergleich zu 2⁶³ -

Laufzeit von python ist, wenn substring in string

Anzahl der Antworten 4 Antworten
Was ist die große O der folgenden if statement? if "pl" in "apple": ... Was ist das Allgemeine big O wie python bestimmt, ob die Zeichenfolge "pl" gefunden wird, in der Zeichenfolge "Apfel" oder andere Teilzeichenfolge in

Was genau enthalten ist, innerhalb einer obj.__Verschluss__?

Anzahl der Antworten 4 Antworten
Beazley S. 100 erwähnt: >>>python.__closure__ (<cell at 0x67f50: str object at 0x69230>,) >>>python.__closure__[0].cell_contents mein Verständnis ist, dass __closure__ ist eine Liste, aber was ist das Zelle Zeugs und str-Objekt?? Das sieht aus wie ein 1-Fach-Tupel? InformationsquelleAutor |

Macht die Umwandlung von bytearray bytes entstehen, eine Kopie?

Anzahl der Antworten 2 Antworten
Tut der Umwandlung von der veränderlichen bytearray geben, um den non-mutable bytes Art entstehen, eine Kopie? Ist es mit Kosten verbunden ist, oder muss der interpreter nur behandeln es als eine unveränderliche byte-Sequenz ist, wie Gießen eine

Wie funktioniert die str(Liste) arbeiten?

Anzahl der Antworten 3 Antworten
Warum str(list) gibt, wie wir sehen Liste auf der Konsole? Wie funktioniert str(list) Arbeit? (jede Bezugnahme auf den CPython-code für str(list))? >>> x = ['abc', 'def', 'ghi'] >>> str(x) "['abc', 'def', 'ghi']" Um die ursprüngliche Liste wieder

Warum ist str.übersetzen viel schneller in Python-3.5 im Vergleich zu Python 3.4?

Anzahl der Antworten 1 Antworten
War ich versucht, um unerwünschte Zeichen aus einer angegebenen Zeichenfolge mit text.translate() in Python 3.4. Den minimal-code ist: import sys s = 'abcde12345@#@$#%$' mapper = dict.fromkeys(i for i in range(sys.maxunicode) if chr(i) in '@#$') print(s.translate(mapper)) Funktioniert es

Gibt es etwas schneller als dict()?

Anzahl der Antworten 3 Antworten
Ich brauche ein schneller Weg zum speichern und zugreifen von rund 3GB k:v Paare. Wo k ist ein string oder eine integer und v ist ein np.array() werden können, von verschiedenen Formen. Gibt es irgendein Objekt, das

Warum Tupeln nehmen weniger Platz im Speicher als Listen?

Anzahl der Antworten 4 Antworten
Einen tuple nimmt weniger Speicherplatz in Python: >>> a = (1,2,3) >>> a.__sizeof__() 48 in der Erwägung, dass lists braucht mehr Speicherplatz: >>> b = [1,2,3] >>> b.__sizeof__() 64 Was geschieht intern auf die Python Speicherverwaltung? Ich

'Ordnung' von ungeordneten Python-sets

Anzahl der Antworten 5 Antworten
Verstehe ich, dass die sets in Python sind ungeordnet, aber ich bin neugierig 'um' Sie sind angezeigt, in der, wie es scheint, konsequent zu sein. Sie zu sein scheinen out-of-order in der gleichen Art und Weise jedes

Sind Wörterbücher bestellt in Python 3.6+?

Anzahl der Antworten 3 Antworten
Wörterbücher sind bestellt in Python 3.6 (unter der CPython-Implementierung zumindest) anders als in früheren Inkarnationen. Dies scheint eine wesentliche änderung, aber es ist nur ein kurzer Absatz in der Dokumentation. Es wird beschrieben, wie ein CPython-Implementierung detail

Was ist der global interpreter lock (GIL) in CPython?

Anzahl der Antworten 8 Antworten
Was ist eine Globale interpreter-Sperre und warum ist es ein Problem? Viel Lärm, der gemacht wurde, um das entfernen der GIL von Python, und ich würde gerne verstehen, warum das so wichtig ist. Ich habe nie geschrieben,

Zwei Variablen in Python haben die gleiche id, aber keine Listen oder Tupel

Anzahl der Antworten 4 Antworten
Beiden Variablen in Python haben die gleichen id: a = 10 b = 10 a is b >>> True Wenn ich zwei lists: a = [1, 2, 3] b = [1, 2, 3] a is b >>>

Zugriff auf Klassen Variablen aus einer Liste Verständnis in der definition der Klasse

Anzahl der Antworten 5 Antworten
Wie greifen Sie andere Klasse die Variablen aus einer Liste Verständnis innerhalb der Klasse definition? Die folgenden Werke in Python 2, aber scheitert in Python 3: class Foo: x = 5 y = [x for i in

Zeit.schlafen — schläft-thread oder Prozess?

Anzahl der Antworten 6 Antworten
In Python für *nix, tut time.sleep() den thread blockiert, oder der Prozess? InformationsquelleAutor der Frage Jeremy Dunck | 2008-09-18

Sind Tupel effizienter als Listen in Python?

Anzahl der Antworten 7 Antworten
Ist es keine performance-Unterschied zwischen Tupel und Listen, wenn es um die Instanziierung und abrufen von Elementen? InformationsquelleAutor der Frage Readonly | 2008-09-16

Wo ist der Code "from __future__ import braces"?

Anzahl der Antworten 1 Antworten
Ich Frage mich, was ist genau der code, der ausgeführt wird, den Befehl: >>> from __future__ import braces SyntaxError: not a chance so, da python ist open-Source, öffnete ich C:\Python27\Lib\__future__.py und sah. erstaunlich, ich fand nichts, das

Den Quellcode für integrierte Python-Funktionen finden?

Anzahl der Antworten 6 Antworten
Gibt es eine Möglichkeit zu sehen, wie die eingebauten Funktionen arbeiten in python? Ich meine nicht nur wie Sie zu benutzen, sondern auch, wie wurden Sie gebaut, was ist der code hinter sortiert oder aufzählen etc...? InformationsquelleAutor

Über Pythons eingebaute sort () Methode

Anzahl der Antworten 3 Antworten
Welcher Algorithmus ist die eingebaute sort() Methode in Python verwenden? Ist es möglich, einen Blick auf den code für die Methode? InformationsquelleAutor der Frage Johannes | 2009-10-04

Verbesserung der Leistung eines sehr großen Wörterbuchs in Python

Anzahl der Antworten 1 Antworten
Ich finde, dass wenn ich die Initialisierung einer leeren Wörterbuch am Anfang, und dann das hinzufügen von Elementen, um das Wörterbuch in einer for-Schleife (rund 110.000 Tasten, wird der Wert für jeden Schlüssel ist eine Liste, auch

Sind Wörterbücher in Python 3.6+ bestellt?

Anzahl der Antworten 3 Antworten
Wörterbücher sind bestellt in Python 3.6 (unter der CPython-Implementierung zumindest) anders als in früheren Inkarnationen. Dies scheint eine wesentliche änderung, aber es ist nur ein kurzer Absatz in der Dokumentation. Es wird beschrieben, wie ein CPython-Implementierung detail

Wann werden .pyc-Dateien aktualisiert?

Anzahl der Antworten 2 Antworten
Ich verstehe, dass ".pyc" - Dateien sind kompilierte Versionen der plain-text ".py" Dateien, die zur Laufzeit angelegt, um Programme schneller laufen. Allerdings habe ich beobachtet, dass Sie ein paar Dinge: Nach der änderung "py" Dateien, Programm-Verhalten ändert.

Warum ist "1000000000000000 im Bereich (1000000000000001)" in Python 3 so schnell?

Anzahl der Antworten 7 Antworten
Es ist mein Verständnis, dass die range() Funktion, die eigentlich ein Objekt-Typ in Python 3generiert seine Inhalte auf den zu Fliegen, ähnlich wie ein generator. Sollte dies der Fall sein, hätte ich erwartet, daß Sie die folgende

Wie funktioniert der @property-Dekorator?

Anzahl der Antworten 7 Antworten
Ich würde gerne verstehen, wie die built-in Funktion property funktioniert. Was mich verwirrt ist, dass property können auch verwendet werden, als Dekorateur, aber es braucht nur Argumente wenn verwendet, wie eine eingebaute Funktion und nicht als Dekorateur.

Was ist der richtige Weg, um die Kopier- / Deepcopy-Operationen für ein Objekt in Python zu überschreiben?

Anzahl der Antworten 7 Antworten
Also nur zu schaffen, ich fühle mich wie ich verstehen den Unterschied zwischen copy vs. deepcopy im copy-Modul und ich habe copy.copy und copy.deepcopy vor erfolgreich, aber dies ist das erste mal, ich habe eigentlich Weg über

Warum ist es langsamer, über eine kleine Zeichenfolge als eine kleine Liste zu iterieren?

Anzahl der Antworten 3 Antworten
Ich war Herumspielen mit timeit und bemerkt, dass dabei eine einfache Liste Verständnis über einen kleinen string länger gedauert, als wenn die gleiche operation auf einer Liste von kleinen Einzel-Zeichen-strings. Irgendeine Erklärung? Es ist fast 1,35 mal

Zugreifen auf Klassenvariablen aus einem Listenverständnis in der Klassendefinition

Anzahl der Antworten 2 Antworten
Wie greifen Sie andere Klasse die Variablen aus einer Liste Verständnis innerhalb der Klasse definition? Die folgenden Werke in Python 2, aber scheitert in Python 3: class Foo: x = 5 y = [x for i in

Warum ist die Reihenfolge in Wörterbüchern und Mengen willkürlich?

Anzahl der Antworten 6 Antworten
Ich verstehe nicht, wie looping über ein Wörterbuch oder einen Satz in python geschieht durch 'willkürliche' um. Ich meine, es ist eine Programmiersprache, so dass alles in der Sprache zu 100% bestimmt, richtig? Python muss auf irgendeine

Wie wird Pythons Liste implementiert?

Anzahl der Antworten 7 Antworten
Ist es eine verkettete Liste, ein array? Ich suchte herum und fand nur Menschen raten. Meine C-Kenntnisse nicht gut genug, um sich den Quellcode ansehen. InformationsquelleAutor der Frage Greg | 2010-10-12

Warum ist x ** 4.0 schneller als x ** 4 in Python 3?

Anzahl der Antworten 3 Antworten
Warum ist x**4.0 schneller als x**4? Ich bin mit CPython 3.5.2. $ python -m timeit "for x in range(100):" " x**4.0" 10000 loops, best of 3: 24.2 usec per loop $ python -m timeit "for x in

Wie ist die Variable __name__ in einem Python-Modul definiert?

Anzahl der Antworten 2 Antworten
Ich bin mir dessen bewusst,das standard-Beispiel: wenn Sie ausführen, ein Modul direkt, dann ist es __name__ Globale variable ist definiert als "__main__". Jedoch, nirgends in der Dokumentation finde ich eine genaue Beschreibung, wie __name__ definiert ist, im

Warum sind einige float & lt; Ganzzahlvergleiche vier Mal langsamer als andere?

Anzahl der Antworten 2 Antworten
Beim Vergleich von Schwimmern, die zu ganzen zahlen, einige Paare der Werte dauert aber viel länger evaluiert werden als andere Werte in einer ähnlichen Grössenordnung bewegen. Beispiel: >>> import timeit >>> timeit.timeit("562949953420000.7 < 562949953421000") # run 1

Wann ist del nützlich in Python?

Anzahl der Antworten 17 Antworten
Kann ich nicht wirklich denke, dass aus irgendeinem Grund, warum python muss die del keyword (und die meisten Sprachen scheinen nicht haben ein ähnliches Schlüsselwort). Anstatt zum Beispiel wenn Sie eine variable löschen, könnte man nur zuweisen

Warum verlangsamen Pythons Arrays?

Anzahl der Antworten 3 Antworten
Ich erwartet array.array schneller zu sein als die Listen, die als arrays zu sein scheinen, ohne Verpackung. Allerdings bekomme ich das folgende Ergebnis: In [1]: import array In [2]: L = list(range(100000000)) In [3]: A = array.array('l',

Warum ist 'x' in ('x',) schneller als 'x' == 'x'?

Anzahl der Antworten 2 Antworten
>>> timeit.timeit("'x' in ('x',)") 0.04869917374131205 >>> timeit.timeit("'x' == 'x'") 0.06144205736110564 Funktioniert auch für Tupel mit mehreren Elementen, beide Versionen scheinen zu wachsen Linear: >>> timeit.timeit("'x' in ('x', 'y')") 0.04866674801541748 >>> timeit.timeit("'x' == 'x' or 'x' == 'y'")

Warum ist str.translate in Python 3.5 viel schneller als in Python 3.4?

Anzahl der Antworten 1 Antworten
War ich versucht, um unerwünschte Zeichen aus einer angegebenen Zeichenfolge mit text.translate() in Python 3.4. Den minimal-code ist: import sys s = 'abcde12345@#@$#%$' mapper = dict.fromkeys(i for i in range(sys.maxunicode) if chr(i) in '@#$') print(s.translate(mapper)) Funktioniert es