all_row_lists = [] # 创建一个外部列表,用于保存多个 row_list is_continuous = True # 标志变量,初始值为 True while is_continuous: row_list = [] # 创建一个空列表,用于保存当前循环中的 row_list # 循环判断条件 if ' └------------' in formula_result: # 判断失败,进行相应处理 print("有列表交易:" + sht_namsss + "字段是:" + formula_result + "行数" + str(row)) row_list.append(str(row)) # 将 str(row) 添加到当前循环的 row_list all_row_lists.append(row_list) # 将当前循环的 row_list 添加到外部列表中 # 判断退出条件 if not str(row + 1) in formula_result: # 当下一个 row 不是连续自然数时,退出循环 is_continuous = False row += 1 # 更新 row 的值 # 在循环结束后,all_row_lists 将包含多个 row_list print(all_row_lists) all_row_lists并没有包含多个 row_list
时间: 2024-04-12 21:32:36 浏览: 106
你正确地使用了标志变量 `is_continuous` 和循环来判断退出条件,并将当前循环的 `row_list` 添加到外部 `all_row_lists` 中。然而你可能遗漏了在每次循环时重新初始化 `row_list` 的步骤导致最终 `all_row_lists` 中包含一个空的 `row_list`。
为了修正这个问题,你需要将 `row_list = []` 的初始化语句放在循环开始的位置。以下是修正后的代码:
```python
all_row_lists = [] # 创建一个外部列表,用于保存多个 row_list
is_continuous = True # 标志变量,初始值为 True
row = 0 # 初始化 row 的值
while is_continuous:
row_list = [] # 创建一个空列表,用于保存当前循环中的 row_list
# 循环判断条件
if ' └------------' in formula_result:
# 判断失败,进行相应处理
print("有列表交易:" + sht_namsss + "字段是:" + formula_result + "行数" + str(row))
row_list.append(str(row)) # 将 str(row) 添加到当前循环的 row_list
all_row_lists.append(row_list) # 将当前循环的 row_list 添加到外部列表中
# 判断退出条件
if not str(row + 1) in formula_result: # 当下一个 row 不是连续自然数时,退出循环
is_continuous = False
row += 1 # 更新 row 的值
# 在循环结束后,all_row_lists 将包含多个 row_list
print(all_row_lists)
```
在这个修正后的代码中,我们将 `row_list = []` 的初始化语句放在循环的开始位置,并初始化了 `row` 的值。这样,在每次循环开始时都会创建一个新的空列表 `row_list`,并将其添加到 `all_row_lists` 中。最终,`all_row_lists` 将包含多个 `row_list`。请确保适当地修改和适应代码以满足你的实际需求。
阅读全文