在嵌套的for循环中将值存储在不同的变量中

Storing values in different variables in nested for loop

我目前正在编写一段代码,循环遍历展开的行和列sheet,然后使用行 r 和列 c 的单元格的值] 在函数的参数中。我目前的工作方式如下:

for i in range (1, ws.max_row+1): 
    first_column = worksheet.cell(i,1).value
    second_column = worksheet.cell(i,2).value
    third_column = worksheet.cell(i,3).value
    result = functionX.create(first_column, second_column, third_column)

其中索引 i 循环遍历 sheet 中的行。我正在使用 openpyxl 库中的 worksheet.cell(row,column).value 函数并将它们存储在 x_column 变量中。后来,这些变量在相同的 for 循环 中用作 class.create() 函数 的参数。

但是,我想做的是使用单独的索引来跟踪循环中的列。这样做的原因是,当用户在 i 行和 j 列遇到空单元格时,我想向用户打印一条消息。

作为解决方案,我认为使用嵌套 for 循环来跟踪列可能会很有用:

for i in range (1, ws.max_row+1):
    for j in range (1,4):
        first_column = worksheet.cell(i,j).value
        second_column = worksheet.cell(i,j).value
        third_column = worksheet.cell(i,j).value
    result = functionX.create(first_column, second_column, third_column)

但是,这显然不会在第二个循环的同一迭代中增加索引 j。知道如何解决这个问题吗?

如果您真的想对列使用 for 循环,您可以使用列表来组合单元格的值,然后解压缩该列表以将组合后的值传递给方法 .create()

如果你想在不改变很多代码的情况下添加更多的列,这也很灵活,只需增加第二个循环的范围。

它可能看起来像这样:

for i in range (1, ws.max_row+1):
    column_list = []
    for j in range (1, 4):
        column_list.append(worksheet.cell(i,j).value)

    # the '*' unpacks the whole list
    result = the_class.create(*column_list)

这对你有用吗?