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

R语言get()函数的Python等价实现:通过变量名字符串取值

Python实现类似R语言get()的变量获取功能

在R语言中,我们可以通过get()函数配合字符串拼接的对象名称,直接获取对应变量的值,示例代码如下:

item_1 = "apple"

get(paste0('item_', '1'))  # 返回结果为"apple"

如果你在Python中已经定义了变量item_1 = 'apple',想要实现一个类似的函数,调用get_var('item_' + '1')就能返回'apple',可以用以下几种方式实现:

方法一:获取全局作用域的变量

利用Python内置的globals()函数,它会返回当前全局命名空间的字典,我们可以通过变量名字符串作为键来取值:

def get_var(var_name):
    return globals()[var_name]

# 调用示例
item_1 = 'apple'
print(get_var('item_' + '1'))  # 输出:apple

方法二:获取局部作用域的变量

如果目标变量在局部作用域内(比如某个函数内部),可以使用locals()函数,它返回当前局部命名空间的字典:

def demo_local():
    item_1 = 'apple'
    def get_local_var(var_name):
        return locals()[var_name]
    print(get_local_var('item_' + '1'))  # 输出:apple

demo_local()

更推荐的替代方案

直接通过名字字符串获取变量的方式会降低代码可读性,还容易引发命名冲突等问题。如果需要动态管理这类键值对,更推荐使用字典来存储:

# 用字典存储变量
item_dict = {
    'item_1': 'apple',
    'item_2': 'banana'
}

# 通过拼接的键名取值
print(item_dict['item_' + '1'])  # 输出:apple

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 13:43:18