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

如何通过字符串片段访问对应变量?以Python体育DataFrame为例

高效映射运动名称到对应DataFrame的方案

方案一:读取文件时直接构建字典(推荐)

不用先逐个定义nfl_df这类变量,直接通过字典推导式一次性完成文件读取和映射,代码简洁且无冗余:

import pandas as pd

sports = ['NFL', 'MLB', 'NBA', 'NHL']
# 字典的键是运动名称,值是对应的DataFrame
sport_dfs = {sport: pd.read_csv(f'{sport.lower()}_data.csv') for sport in sports}

# 遍历使用时直接通过键获取对应DataFrame
for sport in sports:
    current_df = sport_dfs[sport]
    # 这里写你要对数据执行的操作,比如:
    # print(f"{sport}数据共有{len(current_df)}行")

方案二:动态获取已定义的变量

如果已经提前定义了nfl_df、nba_df这类变量,可以利用globals()函数动态根据字符串获取变量,但这种方式可读性稍弱,仅适合已有变量的场景:

# 假设已存在nfl_df、nba_df、mlb_df、nhl_df这些变量
for sport in sports:
    # 把运动名转成「小写+_df」的格式,比如NFL → nfl_df
    df_var_name = f"{sport.lower()}_df"
    current_df = globals()[df_var_name]
    # 执行后续操作

总结:方案一从源头避免了重复代码,结构更清晰,是更优的选择;方案二适合已有变量的遗留场景,但尽量少用,避免代码可读性下降。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 12:13:17