在python中打印变量名

在python中打印变量名,python,python-3.x,dataframe,Python,Python 3.x,Dataframe,这里bkd_列、bkd_测试是数据帧 for dataName in ['bkd_train', 'bkd_test']: data = eval(dataName) print("{} : {}".format(dataName, data.shape)) 我想打印数据框名称和形状 for data in [bkd_train, bkd_test]: print("{} : {}".format(?, data.shape)) 如果我使用的是“数据”,那么它就是在打

这里bkd_列、bkd_测试是数据帧

for dataName in ['bkd_train', 'bkd_test']:
    data = eval(dataName)
    print("{} : {}".format(dataName, data.shape))
我想打印数据框名称和形状

for data in [bkd_train, bkd_test]:
    print("{} : {}".format(?, data.shape))
如果我使用的是“数据”,那么它就是在打印数据帧

for dataName in ['bkd_train', 'bkd_test']:
    data = eval(dataName)
    print("{} : {}".format(dataName, data.shape))
但我希望o/p是这样的:

bkd_train : (10886, 12)
bkd_test : (1111,11)

无法将变量名称作为字符串获取,但可以在输入和查询
locals
字典中传递字符串以获取值:

for data in ["bkd_train", "bkd_test"]:
    print("{} : {}".format(data,locals()[data].shape))
如果变量是局部变量,它就可以工作。如果它们是全局的,则使用
globals
,并使用
locals
,或者只使用
eval
(在该上下文中没有问题,因为要计算的字符串是常量)


另请阅读:

您无法将变量名称作为字符串获取,但您可以在输入中传递字符串并查询
局部变量
字典以获取值:

for data in ["bkd_train", "bkd_test"]:
    print("{} : {}".format(data,locals()[data].shape))
如果变量是局部变量,它就可以工作。如果它们是全局的,则使用
globals
,并使用
locals
,或者只使用
eval
(在该上下文中没有问题,因为要计算的字符串是常量)


另请阅读:

我将迭代变量名本身,然后使用
eval
计算将为您提供数据帧的名称

for dataName in ['bkd_train', 'bkd_test']:
    data = eval(dataName)
    print("{} : {}".format(dataName, data.shape))

我将迭代变量名本身,然后使用
eval
计算将为您提供数据帧的名称

for dataName in ['bkd_train', 'bkd_test']:
    data = eval(dataName)
    print("{} : {}".format(dataName, data.shape))