擅长:python、mysql、java
<p>链接到的<a href="https://stackoverflow.com/questions/44778/how-would-you-make-a-comma-separated-string-from-a-list">question</a>中的方法作为<code>join</code>的引用,以及嵌套的<code>join</code>s(这有什么问题?)只要您可以将列表中包含的所有对象转换为字符串,就可以工作:</p>
<pre><code>list_of_lists = [[1, 'a'], [2, 3, 'b'], ['c', 'd']]
joined = '\n'.join(','.join(map(str, row)) for row in list_of_lists)
print(join)
</code></pre>
<p>输出:</p>
^{pr2}$
<p>编辑:</p>
<p>如果对象的字符串表示形式可能包含逗号,则可以通过以下几项操作来实现恢复原始列表列表的输出:</p>
<ol>
<li>避开那些逗号,或者</li>
<li>用引号将所述字符串表示形式包装起来(然后必须转义值中出现的字符)。这正是<code>io.StringIO</code>和{<cd4>}组合的作用(见丹尼尔的回答)。在</li>
</ol>
<p>为了实现第一个目标,你可以</p>
<pre><code>import re
def escape_commas(obj):
return re.sub(',', '\,', str(obj))
joined = '\n'.join(','.join(map(escape_commas, row)) for row in list_of_lists)
</code></pre>
<p>第二次</p>
<pre><code>import re
def wrap_in_quotes(obj):
return '"' + re.sub('"', '\"', str(obj)) + '"'
joined = '\n'.join(','.join(map(wrap_in_quotes, row)) for row in list_of_lists)
</code></pre>