在python中将数字导入变量名

2024-10-02 10:19:06 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,我对python编码有点陌生,所以这似乎是一个愚蠢的问题

问题:我试图创建一个脚本,允许我将一个数字导入(变量?运算符?)名称,以便从bash脚本运行python脚本

理想情况下,我希望执行以下操作(我知道语法错误,但这是我第一次尝试并捕获了我希望它执行的操作):

replica_number = 2#2仅用于测试。稍后,它将通过许多不同的数据表与bash脚本中导入的数字进行交换

t_r+replica number = md.load(data_path+'potein_+replica_number+_centered.xtc', top = data_path+'potein_+replica_number+_first.gro')[1:]

我想要做的是自动创建名为t_r2的变量,并导入名为protein_2_centered.xtc和protein_2_first.gro的文件。然而,当我这样做时,我得到:SyntaxError:无法分配给运算符

有人知道如何解决这个问题吗,还是我只需要为每个副本制作一个单独的脚本


Tags: path脚本bashnumber编码data运算符数字
3条回答

使用字典进行此类操作:

replica_number = md.load(...)[1:]
your_dict = {t_r : replica_number} 

并通过

your_dict[t_r]

当属性或变量的名称是动态的时,例如,我们可以使用Python用于fomat字符串(f'')的新方法,然后使用setattr方法:

settattr方法如下所示,是内置库的一部分:

def setattr(x, y, v): # real signature unknown; restored from __doc__
     """ Sets the named attribute on the given object to the specified value."""

下面是您可以对变量执行的操作

replica_number = 2
variable_name = f't_r{replica_number }'

然后检查并设置aaAttribute:

 if not hasattr(YOUR_OBJECT, variable_name ):
            raise ValueError

setattr(YOUR_OBJECT, variable_name , THE_VALUE)

您需要的是listdictionary

您可以将所有结果保留在一个列表中(不保留replica_number):

t_r_list = []
t_r_list.append(md.load(...)[1:]) #  Run this line for each t_r you want to load

或者,如果要保留replica_number,可以使用dict:

t_r_dict = {}
t_r_dict[replica_number] = md.load(...)[1:]

您可能想阅读关于这些数据结构以及如何使用它们的教程,它将极大地帮助您以后使用python,并且是使用python处理数据的基础

相关问题 更多 >

    热门问题