【问题标题】:How to export a list with different size from python to excel如何将不同大小的列表从python导出到excel
【发布时间】:2015-11-05 20:00:51
【问题描述】:

我已经阅读了Export a Python List to ExcelHow 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 在第十列。

【问题讨论】:

  • 这些列表的长度不规则?您想如何处理某些列表中不存在的索引?

标签: python excel export


【解决方案1】:

如果您可以使用 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

如果您愿意,我认为其他 excel 库也可以进行类似的操作(使用 zip())。

【讨论】:

    【解决方案2】:

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

    输出:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-21
      • 2018-10-15
      • 2012-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多