我已經說過三個串列,其中一個是這樣嵌套的:
a = [1, 2, 3, 4]
b = ["abc", "def", "dec", "erf"]
c = [[5, 6, 7], [8, 9, 10], [11, 12, 13.3], [14, 15, 16]]
我想要CSV它的檔案輸出,如下所示:
1,abc,5,6,7
2,def,8,9,10
3,erf,11,12,13.3
...
我嘗試將它們壓縮并寫入CSV檔案,如下所示:
with open('filer.csv', "w") as f:
writer = csv.writer(f)
for row in zip(a, b, c):
writer.writerow(row)
但是輸出有這些愚蠢的括號,如下所示:
1,abc,"[5,6,7]"
2,def,"[8,9,10]"
3,erf,"[11,12,13.3]"
...
但我希望它們沒有括號也沒有引號,如下所示:
1,abc,5,6,7
2,def,8,9,10
3,erf,11,12,13.3
...
:(
uj5u.com熱心網友回復:
用:
with open('filer.csv', "w") as f:
writer = csv.writer(f)
for ai, bi, ci in zip(a, b, c):
writer.writerow([ai, bi, *ci])
輸出
1,abc,5,6,7
2,def,8,9,10
3,dec,11,12,13.3
4,erf,14,15,16
正如您所說,您有嵌套串列,因此您需要展平串列,運算式將其展[ai, bi, *ci] 平。
你得到括號的原因writerow是(可能)為傳遞給它的迭代的每個元素應用函式str。串列的字串表示包括括號,例如:
In[3]: str([1, 2, 3])
Out[3]: '[1, 2, 3]'
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/327222.html
