You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python FOR循环中生成的列表无法在循环外访问如何解决

问题原因
  • 你在循环里使用的i是单次循环的临时变量,每次循环都会被新值覆盖,循环结束后只会保留最后一次循环的赋值结果,不会留存所有板块的对应列表
  • 你没有将循环内生成的各板块列表存入循环外的全局容器,自然无法在循环结束后调用不同板块的分类结果
修复代码

推荐用字典存储分类结果,键为板块名称,值为对应板块的股票代码列表,调用更方便:

import pandas as pd

data = pd.read_csv('https://datahub.io/core/s-and-p-500-companies/r/constituents.csv')
# 初始化存储分类结果的字典
sector_symbol_map = {}
# 获取所有去重后的板块
sectors = set(data['Sector'])

for sector in sectors:
    # 筛选对应板块的股票代码
    symbol_list = list(data.loc[data['Sector'] == sector, 'Symbol'])
    # 存入字典
    sector_symbol_map[sector] = symbol_list
    # 打印验证
    print(f"{sector}板块的股票代码:{symbol_list}")

# 循环外调用示例:获取信息技术板块的股票代码
print(sector_symbol_map['Information Technology'])
额外优化说明

你也可以直接用pandas自带的分组方法实现,代码更简洁:

sector_symbol_map = data.groupby('Sector')['Symbol'].apply(list).to_dict()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 20:36:02