Python 在列表中找到最小值
这里的程序非常简单。我试图取一个正整数n,生成一个由100到500之间的n个随机数组成的列表,并返回列表中出现的最小值Python 在列表中找到最小值,python,Python,这里的程序非常简单。我试图取一个正整数n,生成一个由100到500之间的n个随机数组成的列表,并返回列表中出现的最小值 import random def randomNumber2(n): mylist2 = [] needMoreNumbers2 = True while (needMoreNumbers2): randomNumber2 = int(random.random() * 500) myList2.append(rando
import random
def randomNumber2(n):
mylist2 = []
needMoreNumbers2 = True
while (needMoreNumbers2):
randomNumber2 = int(random.random() * 500)
myList2.append(randomNumber2)
n >= n - 100
if (n <= 500):
needMoreNumbers2 = false
return myList2
随机导入
def随机数2(n):
mylist2=[]
needMoreNumbers2=真
而(需要更多数字2):
randomNumber2=int(random.random()*500)
myList2.追加(随机数2)
n>=n-100
如果(n)
我试图取一个正整数n,生成一个由100到500之间的n个随机数组成的列表,并返回列表中出现的最小值
import random
def randomNumber2(n):
mylist2 = []
needMoreNumbers2 = True
while (needMoreNumbers2):
randomNumber2 = int(random.random() * 500)
myList2.append(randomNumber2)
n >= n - 100
if (n <= 500):
needMoreNumbers2 = false
return myList2
然后,您不需要该列表,只需返回n
中生成的最小随机数
随机导入
def smallrand(n,最小量程=100,最大量程=500):
最小值=浮点(“+inf”)
对于X范围内的u(n):
new=random.randint(rangemin,rangemax)
如果新<最小:最小=新
返回最小值
如果您想要更接近您的程序,您需要首先修复程序中的一些东西-它根本不运行。Python区分大小写,因此mylist2
和mylist2
是不同的。在整个过程中使用相同的拼写。类似地,false
不是Python内置的-false
是
解决这些问题,我们将获得:
import random
def randomNumber2(n):
myList2 = []
needMoreNumbers2 = True
while (needMoreNumbers2):
randomNumber2 = int(random.random() * 500)
myList2.append(randomNumber2)
n >= n - 100
if (n <= 500):
needMoreNumbers2 = False
return myList2
进步;-)现在我们至少得到一个包含n
随机整数的列表。但是,它们不在您想要的范围内:int(random.random()*500)
返回0到499(包括0到499)范围内的整数。如果您希望它们包含在100到500之间,最好的方法是执行random.randint(100500)
,其他人已经向您展示了这一点100+int(random.random()*400)
是一种更接近原始代码的等效方法,因此让我们尝试一下:
import random
def randomNumber2(n):
myList2 = []
while len(myList2) < n:
randomNumber2 = 100 + int(random.random() * 400)
myList2.append(randomNumber2)
return myList2
F J给出的答案是,最有经验的Pythonistas会如何编写代码。提示:让第一个随机数为最小值。在随后的迭代中,如果新的随机数较小,则让该值替换旧的最小值。n>=n-100
是打字错误吗?您没有修改n
的值,只是进行比较并忽略结果。这是一种更简单的编码方法。看看我的代码,有没有一种方法可以改变我的代码中的一些东西来产生最小值?+1比我的代码更好地遍历他的代码。不过,我还要提到,在这种情况下,for循环比while循环更可取。是的,for循环肯定更自然。但我想让OP代码尽可能接近他的原始代码,因为这正是他一直要求的;-)如何只显示整个列表中最低的整数?例如,您可以使用返回最小的
,而不是返回myList2
。
import random
def randomNumber2(n):
myList2 = []
while len(myList2) < n:
randomNumber2 = int(random.random() * 500)
myList2.append(randomNumber2)
return myList2
import random
def randomNumber2(n):
myList2 = []
while len(myList2) < n:
randomNumber2 = 100 + int(random.random() * 400)
myList2.append(randomNumber2)
return myList2
import random
def randomNumber2(n):
myList2 = []
smallest = None
while len(myList2) < n:
randomNumber2 = 100 + int(random.random() * 400)
myList2.append(randomNumber2)
if smallest is None or randomNumber2 < smallest:
smallest = randomNumber2
assert smallest == min(myList2)
return myList2