在python中打印变量名



这里bkd_train、bkd_test数据帧

我想打印数据帧名称和它的形状。

for data in [bkd_train, bkd_test]:
print("{} : {}".format(?, 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(在这种情况下不是问题,因为要计算的字符串是常量(

另请阅读:如何将变量名获取为字符串?

我会对变量名称本身进行迭代,然后使用eval来评估将为您提供数据帧的名称。

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

最新更新