Hallo Forum!
Hab die Frage zuerst ins falsche Forum gestellt, hier ist es wohl besser aufgehoben:
Ich bekomme über die Serielle Schnittstelle via pyserial einen String, der folgendermaßen aussieht:
T1:20 T2:23 A1:0 A2:30 A3:85 A4:53 K1:0 K2:0
Nun hätte ich gerne, daß der Wert hinter dem ":" in einer Variable mit dem Namen vor dem ":" erscheint. Der String soll also so verwurstet werden:
T1 = 20
T2 = 23 usw.
Alternativ ginge es auch, daß die Werte in ein Array geschoben werden...
Dummerweise ändert sich die Länge des Strings ja, wenn ein Wert über 99 geht.
Irgendwelche Ideen, wie ich das machen könnte? Rolling Eyes
Grüße & vielen Dank!
String in Variablen zerlegen? (war im falschen Forum...)
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Hi!
Anstatt einzelne Variablen zu generieren, wäre es vielleicht gscheiter das ganze mit einem Dictionary zu machen:
Gruß, mawe
Anstatt einzelne Variablen zu generieren, wäre es vielleicht gscheiter das ganze mit einem Dictionary zu machen:
Code: Alles auswählen
>>> s = "T1:20 T2:23 A1:0 A2:30 A3:85 A4:53 K1:0 K2:0"
>>> vars = {}
>>> for i in s.split():
... k,v = i.split(":")
... vars[k] = v
...
>>> vars["T2"]
'23'
In einer aktuellen Python-Version (2.4.x) kann man es auch so schreiben:
Code: Alles auswählen
In [25]: s = "T1:20 T2:23 A1:0 A2:30 A3:85 A4:53 K1:0 K2:0"
In [26]: variables = dict(item.split(':') for item in s.split())
In [27]: variables
Out[27]:
{'A1': '0',
'A2': '30',
'A3': '85',
'A4': '53',
'K1': '0',
'K2': '0',
'T1': '20',
'T2': '23'}