我应该写一个函数max_and_min,它接受一个包含整数元素的元组作为参数并返回元组中的最大和最小整数。返回值应该是包含最大值和最小值的元组,按照该顺序。Python的最大值和最小值
为“正常”的方法,我想出了:
def max_and_min(values):
return (max(values), min(values))
pass
任何人都知道使用迭代拿出一个答案的方法是什么?
我应该写一个函数max_and_min,它接受一个包含整数元素的元组作为参数并返回元组中的最大和最小整数。返回值应该是包含最大值和最小值的元组,按照该顺序。Python的最大值和最小值
为“正常”的方法,我想出了:
def max_and_min(values):
return (max(values), min(values))
pass
任何人都知道使用迭代拿出一个答案的方法是什么?
如果你想找到最大/最小通过穿越/迭代 - 使用下面的方法:
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)
我认为不是提供复制解决方案,而是应该解释解决方案,以便OP可以尝试自己解决问题。这尤其适用于这样的情况,问题显然是基于家庭作业。 –
您的解决方案可以正常工作,但min
和max
方法都循环遍历该元组以分别查找最小值和最大值。
我想你想要的是以下几点:
smallest
和biggest
两者设为元组的第一个元素for number in values: ...
)smallest
和biggest
分别使用“小于”<
和“大于”>
。smallest = number
)循环完成后,你将有变量smallest
和填充有各自的min和max biggest
。
如果您想进一步优化它,请使用if ... else...
而不是两个if
s。最大值不能同时是最小值。 (对于唯一的办法就是只有一个元组独特的号码,我们已经在开始的值设置为第一要素覆盖的话。)
你问一个for循环? – Y0da
你试过了什么?这是一项任务吗? – Lescurel
你想要什么? – Harsha