Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何获得排序列表中的最大值和最小值?_Python_List_Sorting_Python 3.3 - Fatal编程技术网

Python 如何获得排序列表中的最大值和最小值?

Python 如何获得排序列表中的最大值和最小值?,python,list,sorting,python-3.3,Python,List,Sorting,Python 3.3,我必须在生成的列表中找到最大和最小的数字,得到列表中所有数字的总和和平均值。我的号码是由generate_integer_list生成的 我使用sort函数对生成的列表进行排序,然后获取列表中的第一个和最后一个数字,以获得最小和最大的数字。但是,返回的值无论如何都不正确。我尝试给已排序的列表起一个新名称,但这不起作用 我可以返回正确值的唯一方法是打印排序列表,但不允许对问题执行此操作。如何修复此问题?您的代码用于计算第一个值上的总跳过次数;只需直接在数字列表上循环,无需在此处创建范围: def

我必须在生成的列表中找到最大和最小的数字,得到列表中所有数字的总和和平均值。我的号码是由generate_integer_list生成的

我使用sort函数对生成的列表进行排序,然后获取列表中的第一个和最后一个数字,以获得最小和最大的数字。但是,返回的值无论如何都不正确。我尝试给已排序的列表起一个新名称,但这不起作用


我可以返回正确值的唯一方法是打印排序列表,但不允许对问题执行此操作。如何修复此问题?

您的代码用于计算第一个值上的总跳过次数;只需直接在数字列表上循环,无需在此处创建范围:

def list_stats(values, num_int, low_range, high_range):  # function to fix
    values = generate_integer_list(num_int, low_range, high_range)
    new_val = values.sort()
    low_val = new_val[0]
    high_val = new_val[num_int - 1]
    total = 0
    i = 0
    for num in range(num_int-1):
        i = i + 1
        num = values[i]
        total = total + num
    avg = total/num_int
    return total, low_val, high_val, avg


def generate_integer_list(num_int, low_range, high_range): # generates random #'s
    values = []
    for count in range(num_int):
        number = random.randint(low_range, high_range)
        values.append(number)
    return values
你可以不用排序就可以做到这一点;您必须循环所有数字:

total = 0
for num in values:
    total = total + num
def list_stats(值、num_int、low_range、high_range):
值=生成整数列表(整数、低量程、高量程)
总数=0
low_val=high_val=值[0]#开始的东西
对于值中的num:
总数+=num
如果num高值:
高值=num
平均值=总数/数量
返回总计、低值、高值、平均值
我将
total=total+num
替换为
total+=num
,因为它对数字来说是一样的


我还用值列表中的第一个值启动了
low_val
high_val
关闭;然后,循环将在运行过程中找到任何更低或更高的值。

您的代码将计算第一个值上的总跳过次数;只需直接在数字列表上循环,无需在此处创建范围:

def list_stats(values, num_int, low_range, high_range):  # function to fix
    values = generate_integer_list(num_int, low_range, high_range)
    new_val = values.sort()
    low_val = new_val[0]
    high_val = new_val[num_int - 1]
    total = 0
    i = 0
    for num in range(num_int-1):
        i = i + 1
        num = values[i]
        total = total + num
    avg = total/num_int
    return total, low_val, high_val, avg


def generate_integer_list(num_int, low_range, high_range): # generates random #'s
    values = []
    for count in range(num_int):
        number = random.randint(low_range, high_range)
        values.append(number)
    return values
你可以不用排序就可以做到这一点;您必须循环所有数字:

total = 0
for num in values:
    total = total + num
def list_stats(值、num_int、low_range、high_range):
值=生成整数列表(整数、低量程、高量程)
总数=0
low_val=high_val=值[0]#开始的东西
对于值中的num:
总数+=num
如果num高值:
高值=num
平均值=总数/数量
返回总计、低值、高值、平均值
我将
total=total+num
替换为
total+=num
,因为它对数字来说是一样的


我还用值列表中的第一个值启动了
low_val
high_val
关闭;然后,循环将在运行过程中找到任何更低或更高的值。

您的代码将计算第一个值上的总跳过次数;只需直接在数字列表上循环,无需在此处创建范围:

def list_stats(values, num_int, low_range, high_range):  # function to fix
    values = generate_integer_list(num_int, low_range, high_range)
    new_val = values.sort()
    low_val = new_val[0]
    high_val = new_val[num_int - 1]
    total = 0
    i = 0
    for num in range(num_int-1):
        i = i + 1
        num = values[i]
        total = total + num
    avg = total/num_int
    return total, low_val, high_val, avg


def generate_integer_list(num_int, low_range, high_range): # generates random #'s
    values = []
    for count in range(num_int):
        number = random.randint(low_range, high_range)
        values.append(number)
    return values
你可以不用排序就可以做到这一点;您必须循环所有数字:

total = 0
for num in values:
    total = total + num
def list_stats(值、num_int、low_range、high_range):
值=生成整数列表(整数、低量程、高量程)
总数=0
low_val=high_val=值[0]#开始的东西
对于值中的num:
总数+=num
如果num高值:
高值=num
平均值=总数/数量
返回总计、低值、高值、平均值
我将
total=total+num
替换为
total+=num
,因为它对数字来说是一样的


我还用值列表中的第一个值启动了
low_val
high_val
关闭;然后,循环将在运行过程中找到任何更低或更高的值。

您的代码将计算第一个值上的总跳过次数;只需直接在数字列表上循环,无需在此处创建范围:

def list_stats(values, num_int, low_range, high_range):  # function to fix
    values = generate_integer_list(num_int, low_range, high_range)
    new_val = values.sort()
    low_val = new_val[0]
    high_val = new_val[num_int - 1]
    total = 0
    i = 0
    for num in range(num_int-1):
        i = i + 1
        num = values[i]
        total = total + num
    avg = total/num_int
    return total, low_val, high_val, avg


def generate_integer_list(num_int, low_range, high_range): # generates random #'s
    values = []
    for count in range(num_int):
        number = random.randint(low_range, high_range)
        values.append(number)
    return values
你可以不用排序就可以做到这一点;您必须循环所有数字:

total = 0
for num in values:
    total = total + num
def list_stats(值、num_int、low_range、high_range):
值=生成整数列表(整数、低量程、高量程)
总数=0
low_val=high_val=值[0]#开始的东西
对于值中的num:
总数+=num
如果num高值:
高值=num
平均值=总数/数量
返回总计、低值、高值、平均值
我将
total=total+num
替换为
total+=num
,因为它对数字来说是一样的


我还用值列表中的第一个值启动了
low_val
high_val
关闭;然后,循环将在运行过程中找到任何更低或更高的值。

如果您选择的是方向,则可以使用一些BIF来简化此过程

def list_stats(values, num_int, low_range, high_range):
    values = generate_integer_list(num_int, low_range, high_range)
    total = 0
    low_val = high_val = values[0]  # something to start with
    for num in values:
        total += num
        if num < low_val:
            low_val = num
        if num > high_val:
            high_val = num
    avg = total / num_int
    return total, low_val, high_val, avg

只是简单的片段;我没有重写您的代码。

如果您选择的方向是这样的,那么可以使用一些BIF来简化此过程

def list_stats(values, num_int, low_range, high_range):
    values = generate_integer_list(num_int, low_range, high_range)
    total = 0
    low_val = high_val = values[0]  # something to start with
    for num in values:
        total += num
        if num < low_val:
            low_val = num
        if num > high_val:
            high_val = num
    avg = total / num_int
    return total, low_val, high_val, avg

只是简单的片段;我没有重写您的代码。

如果您选择的方向是这样的,那么可以使用一些BIF来简化此过程

def list_stats(values, num_int, low_range, high_range):
    values = generate_integer_list(num_int, low_range, high_range)
    total = 0
    low_val = high_val = values[0]  # something to start with
    for num in values:
        total += num
        if num < low_val:
            low_val = num
        if num > high_val:
            high_val = num
    avg = total / num_int
    return total, low_val, high_val, avg

只是简单的片段;我没有重写您的代码。

如果您选择的方向是这样的,那么可以使用一些BIF来简化此过程

def list_stats(values, num_int, low_range, high_range):
    values = generate_integer_list(num_int, low_range, high_range)
    total = 0
    low_val = high_val = values[0]  # something to start with
    for num in values:
        total += num
        if num < low_val:
            low_val = num
        if num > high_val:
            high_val = num
    avg = total / num_int
    return total, low_val, high_val, avg

只是简单的片段;我没有重写您的代码。

您的最低值和最高值肯定是正确的;您的总值和平均值可能不正确。也许你想告诉我们为什么你认为你得到了不正确的值?每次我运行函数时,我都会得到最小值和最大值,而这些值实际上不是列表中的最小值和最大值;甚至是在名单上。我将原始生成的列表打印在主目录中,以便查看原始列表。您如何知道列表中有什么?你从不在任何地方打印列表;每次调用
generate\u integer\u list()
都会生成新的随机值,因此无法根据该列表检查结果。例如:输入要生成的整数数:10输入l