簡體   English   中英

Python編寫了一個從10個隨機生成的數字列表中選擇最小數字的函數

[英]Python write a function that selects the smallest number from a list of 10 randomly generated numbers

此函數生成10個隨機數的列表。 我需要修改此功能,以便從隨機生成的列表中選擇並打印最小的數字。請幫忙,我很難過:

import random
my_randoms=[]
for i in range (10):
    my_randoms.append(random.randrange(1,101,1))

print (my_randoms)

您可以使用min函數獲得O(n)復雜度

min(my_randoms)

我會用numpy

import numpy as np

np.random.randint(1, 101, 10).min()

簡短說明:

np.random.randint(1, 101, 10)

將打印這樣的東西

array([91, 57, 53, 26, 95,  9, 31, 47, 29, 78])

然后您只需使用min()訪問最小值。

在您的實現中,您只需

min(my_randoms)

如評論中提到的@奧斯汀

在我看來,這聽起來像是一種家庭作業。 如果您需要對現有功能進行最少的更改,並且需要自己減少 (不調用內置函數),那么我建議:

In [14]: import random
    ...: my_randoms=[]
    ...: minv = None
    ...: for i in range (10):
    ...:     my_randoms.append(random.randrange(1,101,1))
    ...:     if minv is None:
    ...:         minv = my_randoms[-1]
    ...:     elif my_randoms[-1] < minv:
    ...:         minv = my_randoms[-1]
    ...: 
    ...: print (my_randoms)
    ...: print(minv)
    ...: 
[94, 24, 79, 75, 12, 57, 39, 37, 7, 96]
7

甚至更好,但是以修改/重構函數的代碼為代價:

In [15]: import random
    ...: minv = random.randrange(1,101,1)
    ...: my_randoms = [minv]
    ...: for i in range (9):
    ...:     v = random.randrange(1,101,1)
    ...:     my_randoms.append(v)
    ...:     if v < minv:
    ...:         minv = v
    ...: 
    ...: print (my_randoms)
    ...: print(minv)
    ...: 
[67, 33, 2, 83, 66, 93, 51, 57, 43, 55]
2

如果允許使用內置函數,則只需按照@ Aran-Frey的建議調用min(my_randoms)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM