for循环中的python3动态变量访问

时间:2019-12-09 17:02:59

标签: python python-3.x

我有几个Pandas数据框,我想一次遍历这些数据框以进行一些初始验证和调试,但是我不知道如何实现它的自动化。我在这里阅读过很多文章,并在各种博客上尝试做类似的事情,并且人们的回答都倾向于“这是错误的做法”,但我还没有发现任何能真正做到我所想的事情寻找。在比伪代码略多的地方,我想做的是:

for i in ('train', 'test', 'address', 'latlon'):
        print('{}:'.format(i))
        print(<i>.head())  ## what should <i> be?

在shell和Perl脚本中,就像将变量名封装在{}(${i})中一样简单,但是我找不到Python等效项。我已经尝试过format()的各种排列,但是我不断得到AttributeError: 'str' object has no attribute 'head'(如果仅尝试print(i.head())则会出现相同的错误)。我也尝试过使用globals(),但是在第一个循环中遇到关键错误。

这仅用于早期开发,并且将被删除,因此它不必过于干净,但这是我现在遇到过几次的问题,这确实使我感到烦恼。

编辑:经过一番尝试和错误后,我得到了下面的工作。希望这会在将来对某人有所帮助。

frames = dict({'train': train.head(), 'test': test.head(), 'address':address.head(), 'latlon': latlon.head()})

for i in frames.keys():
    print('{}'.format(i))
    print(frames[i])

相对于其他语言中的$ {i}来说,这仍然是一个改进,但我仍然不明白,但是它有效。

0 个答案:

没有答案