我已经阅读了Export a Python List to Excel和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]
我想将List导出到 list1 位于第一列的Excel文件中, list2 位于第二列,..., list10 在第十列。
答案 0 :(得分:2)
如果你可以使用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()
)。
答案 1 :(得分:0)
使用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()
输出: