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

我已经阅读了将Excel列表导出到Excel以及如何将用户input(从python)导出到excel工作表 ,但不同的是我的列表的大小不止一个。 我的意思是我的列表是这样的:

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文件,列表1在第一列,列表2在第二列,…, 列表 10在第十列。

如果您使用csv模块写入csv,然后在Excel中打开它,那么您可以使用csv模块和zip()一起将列表列表写为列。 示例 –

 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个索引等等。转换列表的列表。


示例/演示 –

 >>> 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 

如果你想的话,我认为类似的东西(使用zip() )也可以用于其他的excel库。

下面是使用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() 

输出:

在这里输入图像说明