[英]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.