为列表中的每个元素赋值一组属性



我有一个包含唯一项(名称,如果你愿意)的列表,每次我运行我的脚本更改。所有这些项目都有一些计算的属性,这些属性在脚本期间被修改。例如,'S1'将具有pos = 55和ori = 'R'。我想要一个简单的方法来访问这些属性基于他们的名字。

给这些属性"赋值"的最好方法是什么?我一直在四处寻找,字典似乎不是前进的正确方式,所以我尝试使用类,并使以下非功能代码代码:

class Primer: #contains all properties of a primer
    def __init__(self):
        """ Contains all properties of the primer """
        self.pos = 0 #outermost 5' position in sequence to bind
        self.ori = '' #F(orward) or R(everse)

primer_list = ['S', 'M1', 'M2', 'M3', 'E']
for i in primer_list:
        i = primer()
print S.pos #this should give me the pos value of 'S'

我是否在正确的轨道上,但遗漏了一些东西,或者有更好的方法来做到这一点?

编辑我忘了说,我还需要以某种方式恢复我的值。同样不知道如何做到这一点

print primer_list[0].pos #should give me the pos value of S in my example

您的列表有问题,您实际上没有用创建的实例替换旧的值。我还添加了一个name字段,以便您可以跟踪每个实例。

class Primer: #contains all properties of a primer
    def __init__(self, name):
        """ Contains all properties of the primer """
        self.name = name
        self.pos = 0 #outermost 5' position in sequence to bind
        self.ori = '' #F(orward) or R(everse)
    def __str__(self):
        return self.name
primer_list = ['S', 'M1', 'M2', 'M3', 'E']
new_primer = [Primer(x) for x in primer_list]
for i in new_primer:
    print i
    print i.pos
    print i.ori

相关内容

最新更新