2017-10-06 61 views
0

嗨,我有一些非常簡單的掙扎。 我只是想生成一系列特定的隨機浮點數,並將它們進行排序從最低到最高。 這就是我如何開始的,如何對隨機浮點數進行排序?

from random import * 
#import random 
import random 

for i in xrange(5): 
    list= '%2.3f' % random.uniform(0,10) 
    print list 

這段代碼給了我5個隨機浮點數,但我不知道如何對它們進行排序。

+1

最好的辦法是將它們存儲在'list',然後列表進行排序。從不使用'list'作爲變量名稱。 – Arman

+1

你不會把你的號碼放在一個列表中。你只是把它們分配給一個名爲'list'的名字很差的變量。 – khelwood

+0

你需要創建一個像這個list = []這樣的空列表,然後在它後面附上你的數字。這應該是你的出發點 –

回答

2

您應該創建一個空的列表然後追加的項目吧。然後,您可以使用內置的sorted函數來打印獲取排序後的數組。

import random 

my_list = [] 
for i in xrange(5): 
    my_list.append('%2.3f' % random.uniform(0,10)) 

現在,如果你打印的清單,你會得到:

>>> print my_list 
['6.482', '7.542', '8.361', '4.703', '1.174'] 

這就是你如何對它進行排序:

>>> print sorted(my_list) 
['1.174', '4.703', '6.482', '7.542', '8.361'] 

如果你想永久排序列表使用my_list.sort()

>>> my_list.sort() 
>>> print my_list 
['1.174', '4.703', '6.482', '7.542', '8.361'] 

我建議建議你不要使用「list」作爲變量名,這是一個非常糟糕的做法。

0

你的代碼打印五個隨機數,但你是不是將它們存儲在一個list

下面是做這件事的一種方式。我使用Python 3.6.1

import random 

random_floats = ['{:2.3f}'.format(random.uniform(0, 10)) for _ in range(5)] 
print(sorted(random_floats)) 

sorting後打印列表元素他們。隨機值在(0, 10)範圍:

['0.923', '1.004', '2.119', '7.192', '9.477'] 

像其他人已經建議,應避免使用list作爲變量名。

編輯:這是一個使用_作爲一次性變量的Python約定。這裏

相關問題