2016-08-02 10 views
-1

私は数字のリスト[0,10,20,30,40,50]を持っています。このリストは33,43などの乱数で追加されるようになりました。毎回リストをチェックしなければなりませんリストには何も追加されていないので、30と40に四捨五入してください。Pythonで数値を丸める

+2

追加する前にそれらを丸めていない理由、それはより速く全体の多くになり、あなたのコードを私たちに教えてください。 – depperm

+2

丸めの場合、組み込みの 'round'を負の精度で使うことができます。 'round(34.567、-1)' –

+0

list.Butに追加する数値を制御することはできませんが、丸められていることを確認する必要があります。 – Sai

答えて

1

round()組み込み関数を使用してください。 リストの理解と一緒に、表現力豊かな1行の関数を与えることができます!

def round_list(l): 
    return [int(round(i, -1)) for i in l] 

出力例:

l = [24, 34, 41, 40, 12, 434, 53, 53] 
print round_list(l) 
>>> [20, 30, 40, 40, 10, 430, 50, 50] 
+0

を追加した後で四捨五入したいと思います。返信ありがとうございます。リストの値が20,30,40に切り捨てられているかどうかチェックしてください。 – Sai

+1

この関数は常に最新の10thに丸められた新しいリストを返すので、値が最も近い10に丸められているかどうかをチェックする必要はありません。 – ospahiu

1

最寄り10に丸めるために、次のことができます。

  1. デバイド新しい番号に10
  2. によって数使用round()
  3. 丸められたnum 10

によるBER以下のコードは何が必要含まれている必要があります

import random 

l = [0.0, 10.0, 20.0, 30.0, 40.0, 50.0] 

# generate a random number 
random_number = random.uniform(30, 100) 

# round the number to nearest 10 
def round_number(num): 
    x = round(num/10) * 10 
    return x 

rounded_number = round_number(random_number) 

# append to the list 
l.append(rounded_number) 

テスト上記:

>>> print random_number 
64.566245501 
>>> print rounded_number 
60.0 
>>> print l 
[0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0]