Ich habe eine Liste mit eindeutigen Elementen (Namen, wenn Sie so wollen), die sich jedes Mal ändern, wenn ich mein Skript ausführe. Alle diese Elemente verfügen über einige berechnete Eigenschaften, die während des Skripts geändert werden. Zum Beispiel hat 'S1' pos = 55 und ori = 'R'. Ich möchte einen einfachen Zugriff auf diese Eigenschaften basierend auf ihrem Namen.Jedem Element einer Liste eine Set-Eigenschaft zuweisen Python
Wie können diese Eigenschaften am besten "zugewiesen" werden? Ich habe mich um und Wörterbücher scheinen nicht der richtige Weg nach vorn zu gehen, so habe ich versucht, mit Klassen und machte die folgenden nicht-funktionalen Code Code:
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'
Bin ich auf dem richtigen Weg, aber etwas fehlt oder ist gibt es einen besseren Weg, dies zu tun?
BEARBEITEN Ich habe vergessen zu erwähnen, dass ich auch meine Werte irgendwie zurückbekommen muss. Ebenso ahnungslos, wie diese
mit der Listeprint primer_list[0].pos #should give me the pos value of S in my example
Haben alle diese Elemente die gleichen Eigenschaften? 'pos' und' ori'? Müssen sie mit bestimmten Werten initialisiert werden? – galah92
@ galah92 haben sie alle die gleiche Menge an Eigenschaften, aber die Werte ändern sich z.B. Ori kann "F" oder "R" sein. Sie sollten mit leeren Werten initialisiert werden, aber diese sollten in späteren Schritten im Skript zugewiesen werden. – mimat
Dann würde ich mit der Klasse gehen, wie Sie es gemacht haben. Ich glaube, es wird Ihnen helfen, Ihren Code zu strukturieren und ihn lesbarer zu machen. – galah92