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.
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 …
Hinweis: Diese Frage dient nur zu Informationszwecken. Ich bin gespannt, wie tief es in Pythons Interna geht. Vor nicht allzu langer Zeit begann eine Diskussion innerhalb einer bestimmten Frage, ob die an print-Anweisungen übergebenen Zeichenfolgen nach / während des Aufrufs von geändert werden könnten print. Betrachten Sie zum Beispiel die …
Ich verstehe nicht, wie das Durchlaufen eines Wörterbuchs oder eines Satzes in Python in 'beliebiger' Reihenfolge erfolgt. Ich meine, es ist eine Programmiersprache, also muss alles in der Sprache zu 100% bestimmt sein, richtig? Python muss über einen Algorithmus verfügen, der entscheidet, welcher Teil des Wörterbuchs oder der Menge ausgewählt …
Gibt es eine Möglichkeit zu sehen, wie integrierte Funktionen in Python funktionieren? Ich meine nicht nur, wie man sie benutzt, sondern auch, wie sie gebaut wurden, was ist der Code hinter dem Sortieren oder Aufzählen usw.?
Anscheinend list(a)nicht zuordnen, [x for x in a]an einigen Stellen insgesamt [*a]zuordnen und die ganze Zeit insgesamt zuordnen ? Hier sind die Größen n von 0 bis 12 und die resultierenden Größen in Bytes für die drei Methoden: 0 56 56 56 1 64 88 88 2 72 88 96 …
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']") …
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 …
Gibt es einen endgültigen Unterschied zwischen den folgenden beiden Codefragmenten? Der erste weist einer Variablen in einer Funktion einen Wert zu und gibt diese Variable dann zurück. Die zweite Funktion gibt nur den Wert direkt zurück. Verwandelt Python sie in äquivalenten Bytecode? Ist einer von ihnen schneller? Fall 1 : …
A tuplebenötigt in Python weniger Speicherplatz: >>> a = (1,2,3) >>> a.__sizeof__() 48 wohingegen lists mehr Speicherplatz benötigt: >>> b = [1,2,3] >>> b.__sizeof__() 64 Was passiert intern in der Python-Speicherverwaltung?
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 …
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 …
Angesichts der Antwort von Zero Piraeus auf eine andere Frage haben wir das x = tuple(set([1, "a", "b", "c", "z", "f"])) y = tuple(set(["a", "b", "c", "z", "f", 1])) print(x == y) Druckt Trueungefähr 85% der Zeit mit aktivierter Hash-Randomisierung . Warum 85%?
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 …
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 …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.