(please avoid top-posting... corrected) On Mon, 14 Apr 2008 09:08:06 +0200, Penny Y. <[EMAIL PROTECTED]> wrote: > -----邮件原件----- > 发件人: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] 代表 Gabriel > Genellina > 发送时间: 2008年4月14日 12:59 > 收件人: python-list@python.org > 主题: Re: how to remove \n in the list > > En Mon, 14 Apr 2008 01:41:55 -0300, reetesh nigam > <[EMAIL PROTECTED]> escribió: > >> hi, >> l=['5\n', '2\n', '7\n', '3\n', '6\n'] >> >> how to remove \n from the given list > > l is is very poor name... I'll use lines instead: > > lines[:] = [line.rstrip('\n') for line in lines] > --- > > why not just: > > lines = [line.rstrip('\n') for line in lines] > > > what's the difference between lines[:] and lines here? Thanks.
Compare: >>> lines = ['5\n', '2\n', '7\n', '3\n', '6\n'] >>> lines2 = lines >>> lines = [line.rstrip('\n') for line in lines] >>> lines ['5', '2', '7', '3', '6'] >>> lines2 ['5\n', '2\n', '7\n', '3\n', '6\n'] with: >>> lines = ['5\n', '2\n', '7\n', '3\n', '6\n'] >>> lines2 = lines >>> lines[:] = [line.rstrip('\n') for line in lines] >>> lines ['5', '2', '7', '3', '6'] >>> lines2 ['5', '2', '7', '3', '6'] Assigning to lines[:] changes the original list. Assigning to lines rebinds the name to the result of the list comprehension, but doesn't affect the original list. HTH -- python -c "print ''.join([chr(154 - ord(c)) for c in 'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])" -- http://mail.python.org/mailman/listinfo/python-list