我应该编写一个函数max_and_min,它接受一个包含整数元素作为参数的元组,并返回元组中最大和最小的整数。返回值应该是按顺序包含最大值和最小值的元组。
正常'方法,我提出:
def max_and_min(values):
return (max(values), min(values))
pass
任何人都知道使用迭代来提出答案的方法吗?
答案 0 :(得分:0)
您的解决方案工作正常,但min
和max
方法都遍历元组,以便分别找到最小值和最大值。
我认为您想要的是以下内容:
smallest
和biggest
并将两者都设置为元组的第一个元素for number in values: ...
)smallest
和“大于”biggest
运算符将每个值与当前<
和>
进行比较。smallest = number
)循环结束后,变量smallest
和biggest
将填充相应的最小值和最大值。
如果您想进一步优化它,请使用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)