如何导出不同大小的列表,从 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()
输出:
我已经阅读了 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()
输出: