You need to enable JavaScript to run this app. Python for循环如何避免列表重复累加,每轮生成独立结果列表
优惠活动
大模型
产品
解决方案
定价
更多

Python for循环如何避免列表重复累加,每轮生成独立结果列表

问题原因

NEW_middle_index 是全局作用域的列表变量,你没有在每轮处理单个文件前清空/重新初始化它,所以每轮循环的计算结果都会追加到同一个列表里,导致历史内容累加。

解决方法

在处理单个文件的外层循环内部,先把 NEW_middle_index 初始化为空列表,保证每轮循环都生成独立的新列表。

修正后代码

import os
import pandas as pd
import numpy as np

# Function to find middle index
def find_midd(input_list): 
    middleIndex = int(float(len(input_list))) /2
    if middleIndex %2 == 0:
        return middleIndex 
    else:
        return middleIndex - 0.5

file1= np.arange(0,1197)
file2= np.arange(0,1000)
file3= np.arange(0,1204)
file4= np.arange(0,1303)
file5= np.arange(0,1100)
file6= np.arange(0,1420)
file7= np.arange(0,999)

l = [f for f in sorted(os.listdir('.')) if f.startswith('file')]
for i, d in enumerate(l): 
  df = pd.read_csv(d,sep="\s+",header=None)
  e = df.iloc[:,5]
  c = df.iloc[:,4]
  
  df1 = pd.DataFrame()
  middleIndex = find_midd(e)
  middleIndex = int(middleIndex)
  # 每轮处理新文件前先初始化列表,清空历史内容
  NEW_middle_index = []
  lis = [5,10,12, 15 , 17]
  for i in lis:
   ans = middleIndex+15*i
   NEW_middle_index.append(ans)
  print(NEW_middle_index)

运行上述代码后输出就会和预期一致。


内容的提问来源于stack exchange,提问作者john22

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 02:36:01