加入清单:
>>> ''.join([ str(_) for _ in xrange(10) ])
'0123456789'
Run Code Online (Sandbox Code Playgroud)
join 必须采取迭代.
显然,join这个论点是[ str(_) for _ in xrange(10) ],这是一个列表理解.
看这个:
>>>''.join( str(_) for _ in xrange(10) )
'0123456789'
Run Code Online (Sandbox Code Playgroud)
现在,join这个论点只是str(_) for _ in xrange(10),不[],但结果是一样的.
为什么?是否str(_) for _ in xrange(10)也会产生一个列表或一个可迭代?
我正在解析一个文本文件并希望删除所有段落内换行符,同时实际保留形成新段落的双换行符。例如
这是我的第一首诗\n没有意义\n它应该走多远\n没有人知道。\n\n这里有几秒钟\n没有那么长\n再见\n\n
打印出来后,它应该是这样的:
This is my first poem
that does not make sense
how far should it go
nobody can know.
Here is a seconds
that is not as long
goodbye
Run Code Online (Sandbox Code Playgroud)
应该成为
这是我的第一首诗,没有人知道它应该走多远。\n\n这是一个没有那么长的再见\n\n
同样,打印时,它应该如下所示:
This is my first poem that does not make sense how far should it go nobody can know.
Here is a seconds that is not as long goodbye
Run Code Online (Sandbox Code Playgroud)
这里的技巧是删除 '\n' 的单次出现,同时保留双换行符 '\n\n',并保留空白(即“hello\nworld”变成“hello world”而不是“helloworld”) .
我可以通过首先用一个虚拟字符串(如“ $ $ $ ”或同样荒谬的东西)替换 \n\n ,然后删除 \n 然后将“ $ $ $ …