<p>返回字符导致它跳过第一部分,您可以通过使用<code>repr</code>来查看差异</p>
<pre><code>>>> print ",".join(array)
,monkey,pig
>>> print repr(",".join(array))
'dog\r,monkey,pig'
</code></pre>
<p>使用<a href="https://docs.python.org/2/library/functions.html#map" rel="nofollow noreferrer">^{<cd2>}</a>和<a href="https://docs.python.org/2/library/stdtypes.html#str.strip" rel="nofollow noreferrer">^{<cd3>}</a>删除返回字符</p>
<pre><code>>>> array=['dog\r', 'monkey', 'pig']
>>> ",".join(map(str.strip,array))
</code></pre>
<p>输出为</p>
<pre><code>'dog,monkey,pig'
</code></pre>
<p>请注意,使用<code>map</code>比理解剥离字符要好一些。<code>timeit</code>结果</p>
<pre><code>$ python -m timeit "','.join(s.strip() for s in ['dog\r', 'monkey', 'pig'])"
1000000 loops, best of 3: 1.18 usec per loop
$ python -m timeit "','.join(map(str.strip,['dog\r', 'monkey', 'pig']))"
1000000 loops, best of 3: 0.647 usec per loop
</code></pre>
<p>这里讨论了<code>map</code>vs理解的用法。你知道吗</p>
<p>最流行的(也是公认的答案)结论是引用<a href="https://stackoverflow.com/questions/1247486/python-list-comprehension-vs-map">here</a>:</p>
<blockquote>
<p>map may be <strong><em>microscopically</em></strong> faster in some cases (when you're NOT making a lambda for the purpose, but using the same function in map and a listcomp). </p>
</blockquote>