Python 编写一个函数,从 10 个随机生成的数字列表中选择最小的数字



此函数生成一个包含 10 个随机数的列表。我需要修改此功能以从随机生成的列表中选择并打印最小的数字 请帮忙,我遇到了非常困难的时光:

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

您可以使用最小函数来表示 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)

正如评论中@Austin提到的

这听起来像是某种家庭作业。如果您需要对现有函数进行最少数量的更改,并且需要自己找到最少的更改(无需调用内置函数(,那么我建议:

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)即可。

最新更新