On Saturday, May 16, 2015 at 9:46:17 AM UTC-4, Chris Angelico wrote: > On Sat, May 16, 2015 at 11:28 PM, <bruceg113...@gmail.com> wrote: > > I have a string that contains 10 million characters. > > > > The string is formatted as: > > > > "0000001 : some hexadecimal text ... \n > > 0000002 : some hexadecimal text ... \n > > 0000003 : some hexadecimal text ... \n > > ... > > 0100000 : some hexadecimal text ... \n > > 0100001 : some hexadecimal text ... \n" > > > > and I need the string to look like: > > > > "some hexadecimal text ... \n > > some hexadecimal text ... \n > > some hexadecimal text ... \n > > ... > > some hexadecimal text ... \n > > some hexadecimal text ... \n" > > > > I can split the string at the ":" then iterate through the list removing > > the first 8 characters then convert back to a string. This method works, > > but it takes too long to execute. > > > > Any tricks to remove the first n characters of each line in a string faster? > > Given that your definition is "each line", what I'd advise is first > splitting the string into lines, then changing each line, and then > rejoining them into a single string. > > lines = original_text.split("\n") > new_text = "\n".join(line[8:] for line in lines) > > Would that work? > > ChrisA
Hi Chris, I meant to say I can split the string at the \n. Your approach using .join is what I was looking for. Thank you, Bruce -- https://mail.python.org/mailman/listinfo/python-list