Ich habe eine Liste online= [204.945, 205.953, 346.457] und ich möchte nur die Zahlen in der Liste auf zwei Dezimalstellen (eine Liste abgerundet und eine Liste nicht abgerundet). So wie dies, {online= [204.94, 205.95, 346.45] für die nicht abgerundeten und wie diese online= [204.95, 205.95, 346.46] für die abgerundete.

Ich kenne nicht einmal einen Code, der dies möglich macht, also habe ich keinen Code, um meinen Ansatz zu zeigen. Ich meine, ich habe versucht, mit int() zu spielen, aber das scheint alle Dezimalstellen zu entfernen und gibt mir einfach eine ganze Zahl.

0
Zegary 3 Juni 2021 im 01:39

2 Antworten

Beste Antwort

Sie können round() zusammen mit {map() und lambda

list(map(lambda x: round(x,2), online))

Oder, List-Verständnis

[round(item,2) for item in online]

AUSGABE:

[204.94, 205.95, 346.46]
1
BuddyBob 2 Juni 2021 im 22:48

Die folgende Funktion wird das tun:

def to_2_decimals(l):
    for i in range(len(l)):
        l[i]=int(l[i]*100)/100

online= [204.945, 205.953, 346.457,0.0147932132,142314324.342545]
to_2_decimals(online)
print(online)

Aber wissen Sie, dass Rundungsverletzungen nicht Speicher sparen. Wenn Sie nur eine Zeichenfolge, dass Ihre Listenelemente kürzer sein möchten, dann verwenden:

print("{:.2f}".format(online[i]))
0
user2952903 2 Juni 2021 im 23:05