Code: Alles auswählen
int(`[1,2,3,4]`[1:-1].replace(', ',''))
Code: Alles auswählen
int(`[1,2,3,4]`[1:-1].replace(', ',''))
Ich wollte nur darauf hinweisen, dass hier ein map einfacher ist als eine LC oder ein Generator.derdon hat geschrieben:... was wiederum eine Liste ist. itertools.imap geht auch, weil es ein Generator ist. Also reicht es doch, einfach zu sagen, dass str.join als ersten Parameter ein Iterable entgegen nimmt.
hendrikS hat geschrieben:Hab' auch noch nen Exoten:Code: Alles auswählen
int(`[1,2,3,4]`[1:-1].replace(', ',''))
Code: Alles auswählen
int(`[1,2,3,4]`[1::3])
Code: Alles auswählen
int(''.join(map(str, [1,2,3,4]))) 3.31524557677
int(`[1,2,3,4]`[1::3]) 3.41262371509
int(''.join(str(i) for i in [1,2,3,4])) 6.62247130779
reduce(lambda x, y: x*10+y, [1,2,3,4]) 1.59843743317
sum(v*10**i for i, v in enumerate(reversed([1,2,3,4]))) 3.67390827048
Ich wollte gerade sagen, das reduce() so schnell ist, weil die Schleife in C implementiert wurde und daher eine sinnvolle Funktion ist, aber das kann man dank des lambda und des Funktionsaufrufes wohl vergessen.jbs hat geschrieben:Interessant finde ich auch die Geschwindigkeit:
Code: Alles auswählen
int(''.join(map(str, [1,2,3,4]))) 3.31524557677 int(`[1,2,3,4]`[1::3]) 3.41262371509 int(''.join(str(i) for i in [1,2,3,4])) 6.62247130779 reduce(lambda x, y: x*10+y, [1,2,3,4]) 1.59843743317 sum(v*10**i for i, v in enumerate(reversed([1,2,3,4]))) 3.67390827048
Code: Alles auswählen
>>> min(timeit.repeat('reduce(lambda x, y: x*10+y, [1,2,3,4])'))
2.3062410354614258
>>> min(timeit.repeat('i=0\nfor n in [1,2,3,4]: i=i*10+n'))
1.3086600303649902
Code: Alles auswählen
i=0
for n in [1,2,3,4]:
i=i*10+n
Interessant, dass auch map und filter verschwinden sollten. Ich glaube dann wäre die Akzeptanz von Py3 gegen NULL gegangen.mkesper hat geschrieben:Interessant, wie Guido 2005 darüber dachte...
Och, ich hätte das mit gesteigerter Akzeptanz wieder ausgeglichen ...hendrikS hat geschrieben:Interessant, dass auch map und filter verschwinden sollten. Ich glaube dann wäre die Akzeptanz von Py3 gegen NULL gegangen.
Wieso? Ich bin ja auch in der Lisp-Ecke beheimatet und ob ich ``ifilter`` aus den ``itertools`` hole (bei Python 2) oder ``filter`` aus den ``itertools`` holen würde (bei Python 3) wäre mir recht egal.hendrikS hat geschrieben:Interessant, dass auch map und filter verschwinden sollten. Ich glaube dann wäre die Akzeptanz von Py3 gegen NULL gegangen.
Verstehe die Antwort nicht so richtig. Aber mir wäre es auch egal, so lange es verfuegbar ist. Ich mache von allen angesprochenen Funktionen regen Gebrauch.Leonidas hat geschrieben:Wieso? Ich bin ja auch in der Lisp-Ecke beheimatet und ob ich ``ifilter`` aus den ``itertools`` hole (bei Python 2) oder ``filter`` aus den ``itertools`` holen würde (bei Python 3) wäre mir recht egal.
Also der fett geschriebene Text im Blogeintrag sagt, dass sich da nichts von Belang ändern wird.hendrikS hat geschrieben:Aber mir wäre es auch egal, so lange es verfuegbar ist. Ich mache von allen angesprochenen Funktionen regen Gebrauch.