首页 > 解决方案 > Python:嵌套列表迭代

问题描述

我的列表是这样的嵌套列表: [[3, 0, 5, 2, 2, 3, 5, 1, 3, 4, 2, 3, 5, 4], etc.

函数overunder返回这样的元组:(1,2,3,4,5,6)

worksheet2.write将结果写入 excel 文件

我需要将每个函数结果(元组)写入 excel 文件的新行

所以我想出了以下代码

for item in list:
    ou = overunder(item)
    i = 0
    ii = []
    s = sum(ii)
    while i < len(ou):
        worksheet2.write(s + 2, i + 2, ou[i])
        i += 1
    ii.append(1)

它似乎工作正常,唯一的问题是我必须在s每个 for 循环中增加。但奇怪的ii是没有附加。

可能有什么问题?

标签: python

解决方案


您的问题是,s在每个循环ii上重新初始化它们的值。你想在循环之前定义移动。但无论如何,这是一种奇怪的维护清单的方式。您的代码可以通过使用以下函数来简化:forii = []ssumiienumerate

for row, item in enumerate(lst):
    ou = overunder(item)
    for col, element in enumerate(ou):
        worksheet2.write(row + 2, col + 2, element)

顺便说一句,您没有提到您使用什么库来写入 excel。使用您可以利用该append方法一次编写一整行并大大简化您的代码:

for item in lst:
    worksheet2.append(('', '') + overunder(item))

推荐阅读