如何将for循环中的所有结果保存到变量aa中?
问题解决:保存循环中所有二元参数到变量aa
你的问题出在每次循环都重新定义了aa变量,导致之前的结果被覆盖,最后只留下最后一次循环的内容。要保存所有结果,需要先在循环外初始化aa为一个容器(列表或字典),再在循环里往容器里添加内容,而不是每次重新赋值。
方案1:用列表保存所有二元参数的描述信息
初始化aa为一个空列表,每次循环把生成的描述内容添加进去:
y = Data_read.loc[:, ((Data_read == 0) | (Data_read == 1)).all()] a = pd.isna(Data_read) # 循环外初始化空列表 aa = [] for parameter in y: # 把当前参数的描述添加到列表 aa.append(f'binary parameter = {parameter}') # 打印当前项(可选) print(f'binary parameter = {parameter}') # 此时aa已保存所有二元参数的描述 print("所有二元参数:", aa) # 后续参数校验循环保持不变 for parameter in a: if a[parameter].any() or parameter in y: print(f'Invalid Parameter = {parameter}') else: print(f'Valid Parameter = {parameter}')
方案2:用字典保存参数名与二元标识的映射
如果需要结构化存储参数名和属性的对应关系,可以用字典:
y = Data_read.loc[:, ((Data_read == 0) | (Data_read == 1)).all()] a = pd.isna(Data_read) # 循环外初始化空字典 aa = {} for parameter in y: # 用参数名做键,标记为二元参数 aa[parameter] = "binary parameter" # 打印当前项(可选) print(f'binary parameter = {parameter}') # 此时aa是存储所有二元参数的字典 print("二元参数字典:", aa) # 后续参数校验循环保持不变 for parameter in a: if a[parameter].any() or parameter in y: print(f'Invalid Parameter = {parameter}') else: print(f'Valid Parameter = {parameter}')
关键说明
- 禁止在循环内重新定义
aa = {}或aa = 元组,这会直接覆盖之前存储的所有数据。 - 列表适合按顺序保存文本描述,字典适合保存参数名与属性的映射,可根据实际需求选择。
内容的提问来源于stack exchange,提问作者Muhammad Waqas
相关产品推荐
相关产品推荐

