<p>我对您的数据格式做了一些假设,因为您的问题中没有包含有效的Python。你知道吗</p>
<hr/>
<p>可以使用<code>itertools.zip_longest</code>将列旋转为行:</p>
<pre><code>import csv
from itertools import zip_longest
animals = [
[
"dog",
["a", "b", "c", "d"],
["aa", "aa"],
["bb", "bb", "bb", "bb", "bb"],
],
[
"cat",
["a", "b", "c"], [""], ["bb", "bb"],
],
[
"bear", ["a"], ["aa", "aa", "aa"], ["bb"]
],
]
allrows = []
for data in animals:
name = data.pop(0)
rows = list(zip_longest(*data, fillvalue=''))
for i in range(len(rows)):
if i:
rows[i] = ('',) + rows[i]
else:
rows[i] = (name,) + rows[i]
allrows.extend(rows)
with open('output.csv', 'w') as fd:
writer = csv.writer(fd)
for row in allrows:
writer.writerow(row)
</code></pre>
<p>以上将输出:</p>
<pre><code>dog,a,aa,bb
,b,aa,bb
,c,,bb
,d,,bb
,,,bb
cat,a,,bb
,b,,bb
,c,,
bear,a,aa,bb
,,aa,
,,aa,
</code></pre>
<p>如果我们格式化得很好的话:</p>
<pre><code> -
dog a aa bb
b aa bb
c bb
d bb
bb
cat a bb
b bb
c
bear a aa bb
aa
aa
-
</code></pre>
<p>…我想这就是你要找的。你知道吗</p>