why does lstrip strip the D of Daniel Lanois also?
Because lstrip() does NOT strip a PREFIX string.
The characters you supply, individually, are considered
"strippable".
Help on built-in function lstrip:
lstrip(...)
S.lstrip([chars]) -> string or unicode
Return a copy of the string S with leading whitespace removed.
If chars is given and not None, remove characters in chars instead.
If chars is unicode, S will be converted to unicode before stripping
lstrip() will remove characters until it finds one that is NOT
IN the argument.
"a" is the first character that does not appear in string t; if you want
to remove a fixed prefix, you need to match on the string itself.
.... s = s[len(t):]
....
--