2017-10-06 5 views
0

Hi Ich kämpfe mit etwas ziemlich einfachem. Ich möchte nur eine bestimmte Reihe von zufälligen Fließkommazahlen erzeugen und sie vom niedrigsten zum höchsten sortieren. Dies ist, wie ich anfing,Wie werden zufällige Floating-Zahlen sortiert?

from random import * 
#import random 
import random 

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

Dieser Code-Schnipsel gibt mir 5 zufällige Gleitkommazahlen, aber ich weiß nicht, wie sie zu sortieren.

+1

Der beste Weg hier ist, sie in einer "Liste" zu speichern und dann die Liste zu sortieren. und verwende niemals 'list' als Variablennamen. – Arman

+1

Sie setzen Ihre Nummern nicht in eine Liste. Sie ordnen sie nur einer schlecht benannten Variablen namens 'list' zu. – khelwood

+0

Sie müssen eine leere Liste wie diese Liste erstellen = [] und fügen Sie sie dann mit Ihren Nummern an. Das sollte dein Ausgangspunkt sein –

Antwort

2

Sie sollten eine leere Liste erstellen und dann die Elemente anhängen. Dann können Sie die integrierte Funktion sorted verwenden, um das sortierte Array zu drucken.

import random 

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

Nun, wenn Sie die Liste drucken erhalten Sie:

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

Und das ist, wie Sie es sortieren:

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

Wenn Sie permanent die Liste Verwendung sortieren möchten my_list.sort() :

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

ich sugg est Sie nicht "Liste" als Variablennamen verwenden, ist es eine sehr schlechte Praxis.

0

Ihr Code druckt fünf Zufallszahlen, speichert diese jedoch nicht in einer list.

Hier ist eine Möglichkeit, es zu tun. Ich verwende Python 3.6.1

import random 

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

der Liste Druckelemente nach sorting sie. Die statistischen Werte liegen im (0, 10) Bereich:

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

Wie andere haben bereits vorgeschlagen, vermeiden list als Variablenname verwendet wird.

Bearbeiten: Es ist eine Python-Konvention, _ als Wegwerfvariable zu verwenden.

Verwandte Themen