Python 如何从随机数字列表中获取最大值

Python 如何从随机数字列表中获取最大值,python,Python,我有这个密码,我正在努力工作。我可以创建一组随机数,但我需要显示最大值。我试图不使用python内置的max命令,但是,如果找不到解决方案,我会问一个例子 import random def randomNumbers(number): myList = [] numbersToCreate = number while numbersToCreate > 0: randomNumber = int(random.random() * 100)

我有这个密码,我正在努力工作。我可以创建一组随机数,但我需要显示最大值。我试图不使用python内置的max命令,但是,如果找不到解决方案,我会问一个例子

import random
def randomNumbers(number):
    myList = []
    numbersToCreate = number
    while numbersToCreate > 0:
        randomNumber = int(random.random() * 100)
        myList.append(randomNumber)
        numbersToCreate = numbersToCreate -1
    return myList
def randomNumbers(number):
    theList = []        
    numbersToCreate = number
    while numbersToCreate > 0:
        randomNumber = int(random.random() * 100)
        theList.append(randomNumber)
        numbersToCreate -= 1
    return theList

outList = randomNumbers(100)
outList.sort()
print outlist[-1] # No reason to slice the list, which is what you were doing.
我尝试输入的一段代码是:

theList = []
theList.sort()
biggest = theList [-1:][0]
print (theList)
当我尝试运行它时,我得到一个错误,告诉我列表没有定义。任何帮助都将不胜感激

这里有一个解决方案

import random
def randomNumbers(number):
    myList = []
    numbersToCreate = number
    while numbersToCreate > 0:
        randomNumber = int(random.random() * 100)
        myList.append(randomNumber)
        numbersToCreate = numbersToCreate -1
    return myList
theList = randomNumbers(30)
biggest = max(theList)
print (biggest)
def randomNumbers(number):
    theList = []        
    numbersToCreate = number
    while numbersToCreate > 0:
        randomNumber = int(random.random() * 100)
        theList.append(randomNumber)
        numbersToCreate -= 1
    return theList

outList = randomNumbers(100)
outList.sort()
print outlist[-1] # No reason to slice the list, which is what you were doing.
这里有一个解决方案

import random
def randomNumbers(number):
    myList = []
    numbersToCreate = number
    while numbersToCreate > 0:
        randomNumber = int(random.random() * 100)
        myList.append(randomNumber)
        numbersToCreate = numbersToCreate -1
    return myList
def randomNumbers(number):
    theList = []        
    numbersToCreate = number
    while numbersToCreate > 0:
        randomNumber = int(random.random() * 100)
        theList.append(randomNumber)
        numbersToCreate -= 1
    return theList

outList = randomNumbers(100)
outList.sort()
print outlist[-1] # No reason to slice the list, which is what you were doing.
您确实应该使用Python的函数,至少为了可读性

如果没有,您可以随时检查Python开发人员如何在Python中实现它,因为它是开源的。

您确实应该使用Python的函数,至少为了可读性


如果没有,您可以随时检查Python开发人员是如何在Python中实现它的,因为它是开源的。

首先,如果您想在列表中使用int,可以使用
random.randint(min,max)
而不是
int(random.random()*100)
。 其次,您需要调用函数并将返回列表传递给列表

def randomNumberList(n):
    theList = []
    for i in range(n):
        theList.append(random.randint(0,100))
    return theList

theRealList = randomNumberList(n)
然后您将能够使用实际列表

theRealList.sort()
theBiggest = theRealList[-1]

首先,如果您想在列表中使用int,可以使用
random.randint(min,max)
而不是
int(random.random()*100)
。 其次,您需要调用函数并将返回列表传递给列表

def randomNumberList(n):
    theList = []
    for i in range(n):
        theList.append(random.randint(0,100))
    return theList

theRealList = randomNumberList(n)
然后您将能够使用实际列表

theRealList.sort()
theBiggest = theRealList[-1]

为什么要先排序?您使用的是
max()
,这使得排序变得多余…但是使用
max
是不可取的。@Soravux:-这只是一个答案。OP问如何使用max。我收到一个错误,告诉我max()arg是一个空序列。为什么要先排序?您使用的是
max()
,这使得排序变得多余…但是使用
max
是不可取的。@Soravux:-这只是一个答案。OP问如何使用max。我收到一个错误,告诉我max()arg是一个空序列。该列表中没有任何内容(在函数外部的代码段中)…当然它没有很好的定义。该列表中没有任何内容(在函数外的代码段中)…当然它没有很好的定义。这与OP的随机数生成略有不同,因为
int(random.random()*100)
将[几乎]永远不会生成100,而是
random.randint(01100)
将产生100个1/101的时间。这很可能是OP想要的。但是,
randrange
是另一种可能性。这与我想要的非常接近。我只需要得到一个随机数字列表,显示它们,然后在最后显示最大值。@DSM我假设在这个过程中不需要跳过整数例,所以我没有提到
random.randrange()
。你是对的,大约100,它应该是
random.randint(0,99)
你不能用
random\u list=lambda n:[random.randint(0,99)代替
randomNumberList
?这与OP的随机数生成略有不同,因为
int(random.random()*100)
几乎不会生成100,而是
random.randint(01100)
将产生100个1/101的时间。这很可能是OP想要的。但是,
randrange
是另一种可能性。这与我想要的非常接近。我只需要得到一个随机数字列表,显示它们,然后在最后显示最大值。@DSM我假设在这个过程中不需要跳过整数例,所以我没有提到
random.randrange()
。你是对的,大约100,它应该是
random.randint(0,99)
你不能用
random\u list=lambda n:[random.randint(0,99)代替
randomNumberList