Python最大和最小

时间:2017-09-13 06:37:18

标签: python

我应该编写一个函数max_and_min,它接受一个包含整数元素作为参数的元组,并返回元组中最大和最小的整数。返回值应该是按顺序包含最大值和最小值的元组。

正常'方法,我提出:

def max_and_min(values):
    return (max(values), min(values))
    pass

任何人都知道使用迭代来提出答案的方法吗?

2 个答案:

答案 0 :(得分:0)

您的解决方案工作正常,但minmax方法都遍历元组,以便分别找到最小值和最大值。

我认为您想要的是以下内容:

  • 定义两个变量:smallestbiggest并将两者都设置为元组的第一个元素
  • 循环通过元组(for number in values: ...
  • 分别使用“小于”smallest和“大于”biggest运算符将每个值与当前<>进行比较。
  • 如果适用任何条件,请将相应变量设置为当前元素(smallest = number

循环结束后,变量smallestbiggest将填充相应的最小值和最大值。

如果您想进一步优化它,请使用if ... else...代替两个if。最大值不能同时是最小值。 (唯一的方法是在元组中只有一个不同的数字,我们已经通过将值设置为开头的第一个元素来涵盖这种情况。)

答案 1 :(得分:0)

如果您想通过遍历/迭代找到 max / min - 请使用以下方法:

def max_and_min(values):
    max_v = min_v = values[0]
    for v in values[1:]:
        if v < min_v:
            min_v = v
        elif v > max_v:
            max_v = v

    return (max_v, min_v)

l = [1,10,2,3,33]
print(max_and_min(l))

输出:

(33, 1)