Wenn ich Liste von Tupeln wie diese:Um auf Werte von gleichen Elementen in einer Liste von Tupeln zu summieren, während sie Zeichenfolge sind
my_list = [('books', '$5'), ('books', '$10'), ('ink', '$20'), ('paper', '$15'), ('paper', '$20'), ('paper', '$15')]
wie kann ich die Liste dazu drehen:
[('books', '$15'), ('ink', '$20'), ('paper', '$50')]
ie, um die Ausgaben desselben Elements hinzuzufügen, während beide Elemente eine Zeichenfolge in den Tupeln sind. Ich habe ein Problem mit den Preiselementen, die Zeichenfolge sind. Jeder Hinweis würde sehr geschätzt werden. Danke vielmals!
Ich erhalte die erste Liste auf diese Weise:
my_list=[]
for line in data:
item, price = line.strip('\n').split(',')
cost = ["{:s}".format(item.strip()), "${:.2f}".format(float(price))]
my_list.append(tuple(cost))
Jetzt my_list
wie oben angegeben aussehen sollte.
Bitte beachten Sie auch die Formatierungsoptionen im Editor. Markieren Sie den Codeabschnitt und drücken Sie dann Strg-K. – roadrunner66
Gibt es einen Grund, warum Sie die Kosten als String speichern, dem ein '$' vorangestellt ist, anstatt einfach nur 'float'? – Holt
@Holt: Sie würden nicht wollen, für monetäre Werte zu schweben; Ungenauigkeit kann dich töten. 'decimal.Decimal' für alle finanziellen Berechnungen. – ShadowRanger