繁体   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