欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于python3的不同长度数组的输出

程序员文章站 2022-04-06 15:12:31
...

使用python 3.7,openpyxl模块处理list时出现数据丢失

本人使用python3.7,在使用模块 openpyxl 过程中,发现不同长度的list,写入到Excel中时,数据会丢失。
如下:

#usr/bin/ env python

from openpyxl import Workbook
wb = Workbook()

ws = wb.create_sheet("sheet1")
ws = wb.active

array = [
    ['p', 'y', 't', 'h', 'o', 'n'],	#list1
    ['我', '爱', '吃', '肉','',''],	#list2
    [1, 2, 3, 4, 5, 6, 7]	#list3
    ]
rows = len(array)
cols = len(array[0])
for i in range(rows):
    for j in range(cols):
        ws.cell(row=i+1, column=j+1, value=array[i][j])


wb.save('1.xlsx')

当我按照第一个list的长度去遍历数组array时,会报错,
必须将第二个数组用空元素也补齐到与第一个list长度相同,报错才会停止;
但是依旧有问题,那就是第三个list的最后一位元素‘7’会丢失,
运行结果如下:
关于python3的不同长度数组的输出

当我将 list1 和 list2 交换位置,并且不填充 list2 ,编译不会报错,但是同样会丢失的数据,
交换后代码如下:

#usr/bin/ env python

from openpyxl import Workbook
wb = Workbook()

ws = wb.create_sheet("sheet1")
ws = wb.active

array = [
    ['我', '爱', '吃', '肉'],	#list2
    ['p', 'y', 't', 'h', 'o', 'n'],	#list1
    [1, 2, 3, 4, 5, 6, 7]	#list3
    ]
rows = len(array)
cols = len(array[0])
for i in range(rows):
    for j in range(cols):
        ws.cell(row=i+1, column=j+1, value=array[i][j])


wb.save('1.xlsx')

运行后结果如下:
关于python3的不同长度数组的输出
以此记录python 3.7 处理多个list时的问题,也许是方法行不通。
2020-5-22 13:37