Verfasst: Sonntag 7. Februar 2010, 02:00
Code: Alles auswählen
>>> import re
>>> a = "las|6-1-1643-1438-1"
>>> re.search(r'(?:\d+?-?)+', a).group()
'6-1-1643-1438-1'
Seit 2002 Diskussionen rund um die Programmiersprache Python
https://www.python-forum.de/
Code: Alles auswählen
>>> import re
>>> a = "las|6-1-1643-1438-1"
>>> re.search(r'(?:\d+?-?)+', a).group()
'6-1-1643-1438-1'
Code: Alles auswählen
>>> filter(lambda x: x in '1234567890-', 'las|6-1-1643-1438-1')
'6-1-1643-1438-1'
Widerspruch!Darii hat geschrieben:Da Python sowieso schon utopisch langsam ist, macht die Geschwindigkeit aber meist sowieso keinen Unterschied.
Code: Alles auswählen
>>> a = "las|6-1-1643-1438-1"
>>> from operator import contains
>>> from string import digits
>>> from functools import partial
>>> filter(partial(contains, digits+'-'), a)
'6-1-1643-1438-1'
Das hatte ich extra offen gelassen ...BlackJack hat geschrieben:@numerix: Gegen den Teil vor oder nach dem Komma!?
Wie bitte? Hast du einen Beleg für die "mehr Funktionsaufrufe"? Ich würde eher sagen, dass die for-Schleife jeden Durchgang einen name lookup mehr machen muss.Darii hat geschrieben:reduce hat pro schleifendurchlauf zwangsläufig einen Funktionsaufruf mehr als for. Das macht es zwangsläufig langsamer als for.
Code: Alles auswählen
it = iter(r)
a = next(it)
for b in it:
a = f(a, b)