Die Referenzimplementierung der Programmiersprache Python. Verwenden Sie dieses Tag für Fragen, die für diese Implementierung spezifisch sind. Allgemeine Python-Fragen sollten nur mit "Python" gekennzeichnet werden.
def main(): for i in xrange(10**8): pass main() Dieser Code in Python läuft in (Hinweis: Das Timing erfolgt mit der Zeitfunktion in BASH unter Linux.) real 0m1.841s user 0m1.828s sys 0m0.012s Wenn die for-Schleife jedoch nicht in einer Funktion platziert ist, for i in xrange(10**8): pass dann läuft es viel …
Ich habe viel über das PyPy- Projekt gehört. Sie behaupten, es sei 6,3-mal schneller als der CPython- Interpreter auf ihrer Site . Wenn wir über dynamische Sprachen wie Python sprechen, ist Geschwindigkeit eines der Hauptprobleme. Um dies zu lösen, sei PyPy 6,3-mal schneller. Das zweite Problem ist die Parallelität, das …
Was ist das für eine Aufregung um Python und CPython (Jython, IronPython) ? , ich verstehe es nicht: python.org erwähnt, dass CPython ist: Die "traditionelle" Implementierung von Python (Spitzname CPython) In einer weiteren Frage zum Stapelüberlauf wird Folgendes erwähnt: CPython ist der Standard-Bytecode-Interpreter von Python, der in C geschrieben ist. …
Beim Vergleich von Floats mit ganzen Zahlen dauert die Auswertung einiger Wertepaare viel länger als bei anderen Werten ähnlicher Größe. Beispielsweise: >>> import timeit >>> timeit.timeit("562949953420000.7 < 562949953421000") # run 1 million times 0.5387085462592742 Wenn der Gleitkomma oder die Ganzzahl jedoch um einen bestimmten Betrag kleiner oder größer wird, läuft …
Ich habe Leute sagen sehen, dass setObjekte in Python eine O (1) -Mitgliedschaftsprüfung haben. Wie werden sie intern implementiert, um dies zu ermöglichen? Welche Art von Datenstruktur wird verwendet? Welche weiteren Auswirkungen hat diese Implementierung? Jede Antwort hier war wirklich aufschlussreich, aber ich kann nur eine akzeptieren, also werde ich …
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']") …
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 möchte über Python-Code auf einige in C # geschriebene .NET-Assemblys zugreifen. Eine kleine Untersuchung ergab, dass ich zwei Möglichkeiten habe: IronPython mit integrierter .NET-Schnittstellenfunktion / -unterstützung Python mit dem Python .NET- Paket Was sind die Kompromisse zwischen beiden Lösungen?
Also habe ich mit listObjekten gespielt und wenig Seltsames gefunden, das, wenn listes damit erstellt list()wird, mehr Speicher benötigt als Listenverständnis? Ich benutze Python 3.5.2 In [1]: import sys In [2]: a = list(range(100)) In [3]: sys.getsizeof(a) Out[3]: 1008 In [4]: b = [i for i in range(100)] In [5]: …
Ich bin auf dieses seltsame Verhalten gestoßen und habe es nicht erklärt. 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 = tuple(range(2000)); b = tuple(range(2000)); a==b" 10000 loops, best of 3: 70.7 usec …
Ich war kürzlich überrascht zu entdecken, dass Diktate zwar die Einfügereihenfolge in Python 3.7+ beibehalten, Sets jedoch nicht: >>> d = {'a': 1, 'b': 2, 'c': 3} >>> d {'a': 1, 'b': 2, 'c': 3} >>> d['d'] = 4 >>> d {'a': 1, 'b': 2, 'c': 3, 'd': 4} >>> …
In Python (2 und 3). Immer wenn wir List Slicing verwenden, wird ein neues Objekt zurückgegeben, z. l1 = [1,2,3,4] print(id(l1)) l2 = l1[:] print(id(l2)) Ausgabe >>> 140344378384464 >>> 140344378387272 Wenn dasselbe mit Tupel wiederholt wird, wird dasselbe Objekt zurückgegeben, z. t1 = (1,2,3,4) t2 = t1[:] print(id(t1)) print(id(t2)) Ausgabe …
Einfache Reproduktion: class VocalDescriptor(object): def __get__(self, obj, objtype): print('__get__, obj={}, objtype={}'.format(obj, objtype)) def __set__(self, obj, val): print('__set__') class B(object): v = VocalDescriptor() B.v # prints "__get__, obj=None, objtype=<class '__main__.B'>" B.v = 3 # does not print "__set__", evidently does not trigger descriptor B.v # does not print anything, we overwrote …
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.