如何导出不同大小的列表,从 python 到 excel

How to export a list with different size from python to excel

我已经阅读了 Export a Python List to Excel and How to export user inputs (from python) to excel worksheet,但不同的是我的列表不止一种尺寸。我的意思是我的列表是这样的:

List=[[list1],[list2],...,[list10]]

list1、list2、...、list10 包括 3 个 float46 格式的数字。例如:

list1=[1.34543324545676,2.4354356645454,2.786434355455]
list2=[3.33434342343423,6.6566665655655,7.343545454545]

...

list10=[3.6565656565465,7.45454536565656,7.56565656565]

我想将列表导出到 Excel 文件,list1 在第一列,list2 在第二列,...,list10在第十列。

如果您可以使用 csv 模块写入 csv,然后在 excel 中打开它,那么您可以将 csv 模块与 [=15] 一起使用=] ,将您的列表列表写成列。示例 -

import csv
with open('<excel file>','w') as f:
    writer = csv.writer(f)
    #writer.writerow([<header row>]) #uncomment this and put header, if you want header row , if not leave it commented.
    for x in zip(*list_of_lists):
        writer.writerow(x)

*list_of_list 解压列表并将每个内部列表作为单独的参数发送给 zip() 并且 zip() 在每个索引处组合每个列表,因此 zip() 的第一个列表输出是所有列表的第 0 个索引,等等。所以这基本上是转置列表的列表。


Example/Demo -

>>> import csv
>>> ll = [[1,2,3],[3,4,5],[4,2,1]]
>>> with open('a.csv','w') as f:
...     writer = csv.writer(f)
...     for x in zip(*ll):
...         writer.writerow(x)
...

a.csv 中的输出是 -

1,3,4

2,4,2

3,5,1

我认为如果你愿意,其他 excel 库也可以做类似的事情(使用 zip() )。

这是一种使用 XlsxWriter 模块的方法,它会自动处理不同的列表长度:

import xlsxwriter

workbook = xlsxwriter.Workbook('example.xlsx')
worksheet = workbook.add_worksheet()

list1 = [1.34543324545676, 2.4354356645454, 2.786434355455]
list2 = [3.33434342343423, 6.6566665655655, 7.343545454545]
list3 = [3.6565656565465,  7.45454536565656, 7.56565656565]         

List  = [list1, list2, list3]

row_num = 0

for col_num, data in enumerate(List):
    worksheet.write_column(row_num, col_num, data)

workbook.close()

输出: