连接列表:
>>> ''.join([ str(_) for _ in xrange(10) ])
'0123456789'
join
必须接收一个可迭代对象。
显然,join
的参数是 [ str(_) for _ in xrange(10) ]
,这是一个列表生成式。
看这个例子:
>>>''.join( str(_) for _ in xrange(10) )
'0123456789'
现在,join
的参数只是str(_) for _ in xrange(10)
,没有[]
,但结果相同。
为什么?str(_) for _ in xrange(10)
也会产生一个列表或可迭代对象吗?
join
最可能是用C语言编写的,因此比列表推导式运行速度快得多...测试时间! - Joel Cornett