Ich habe eine Klasse Test
mit Attributen Test.att1
, Test.att2
, ..., Test.att10
. Ich habe eine Methode Test.update()
, die zehn neue Werte vals = [v1, v2, ... , v10]
berechnet. Ich möchte Test
Attribute in einer einzigen for-Schleife aktualisieren.Aktualisieren mehrerer Attribute Python
Ich stelle mir so etwas wie das Durchlaufen der Liste mylist = [self.att1, self.att2, ... , self.att10]
innerhalb der Test
Klasse und Einstellwerte pro vals
vor, aber das schien nicht zu funktionieren. Was kann ich stattdessen tun/was ist der beste Weg, um mehrere Attribute ohne eine self.att1, self.att2, self.att3 = v1, v2, v3
Struktur zu aktualisieren?
EDIT: Ich frage speziell, weil ich etwas tue, wie:
a1, a2, a3, a4, a5 = self.update()
self.a1 = pd.concat([self.a1, a1]).drop_duplicates().reset_index(drop=True)
self.a2 = pd.concat([self.a2, a2]).drop_duplicates().reset_index(drop=True)
self.a3 = pd.concat([self.a3, a3]).drop_duplicates().reset_index(drop=True)
self.a4 = pd.concat([self.a4, a4]).drop_duplicates().reset_index(drop=True)
self.a5 = pd.concat([self.a5, a5]).drop_duplicates().reset_index(drop=True)
und bin derzeit mit Ein rückwärts Weg endete ich dies bis zu tun war:
def update(self):
dfs = [self.att1, self.att2, ..., self.att10]
dfs = [pd.concat([dfs[i], vals[i]]).drop_duplicates().reset_index(drop=True) \
for i in range(len(dfs))]
[self.att1, self.att2, ..., self.att10] = dfs
aber bei der Suche nach ein besserer Weg
Warum schreiben Sie nicht eine Methode, die die Liste übernimmt und die Attribute aktualisiert? Auf diese Weise wird es dir leichter fallen. –
Sie alle teilen eine ähnliche Struktur in der Art von 'pd.concat ([self.att1, df]). Drop_duplicates(). Reset_index (drop = True)' Also habe ich mich gefragt, wie ich nur einmal schreiben und 10 Mal vermeiden sollte ... – jjjjjj