Q1 - Ist die folgenden ein set()
ein generator expression
oder set comprehension
? (Oder sind sie gleich, wenn dem so ist, sind list
& dict
Comprehensions auch entsprechenden Typs Guss auf Generatoren?)Wie funktionieren Python-Set-Beschreibungen?
my_set = {x for x in range(10)}
Q2 - Ist die Auswertung betrachten doppelte Werte & sie dann entfernen, indem set()
Anwendung?
dup_set = {x for x in [0, 1, 2, 0, 1, 2]}
Hat das Verständnis (Speed-weise) besser als herkömmliche for
Schleifen durchführen?
Update - Ich habe versucht timeit
für Geschwindigkeitsvergleiche. Bin mir nicht sicher, ob ich nur (fair) darüber bin.
C:\>python -m timeit "s = set()" "for x in range(10):" "
s.add(x)"
100000 loops, best of 3: 2.3 usec per loop
C:\>python -m timeit "s = {x for x in range(10)}"
1000000 loops, best of 3: 1.68 usec per loop
nun einige conditionals mit
C:\>python -m timeit "s = set()" "for x in range(10):" "
if x%2: s.add(x)"
100000 loops, best of 3: 2.27 usec per loop
C:\>python -m timeit "s = {x for x in range(10) if x%2}"
1000000 loops, best of 3: 1.83 usec per loop
So gibt es einige recht Unterschied, ist es aufgrund der Funktionalität in c
fest einprogrammiert werden?
Vielleicht könnten Sie timeit (http://docs.python.org/2/library/timeit.html) verwenden oder eine Code-Timing-Funktion mit dem Zeitmodul erstellen, um die in 'C geschriebenen Zeit-/Geschwindigkeitsdifferenzen – Totem