我需要找到列表的最大值,但我无法使用 max() 方法。我该怎么做呢?我只是一个初学者,所以我确信这很容易找到解决方法,但是我很困惑。
编辑:忘记提及我正在使用Python。
max = list[0]
for x in list:
if x > max:
max = x
print max
在此示例中,我们将最大值初始化为第一个元素。然后我们迭代列表,如果发现比当前最大值更大的值,我们将该值分配给 max。最后,我们应该得到最大值,并打印出来。
考虑一下如何手动执行此操作。
如果您有这样的列表:
[10, 6, 8, 2, 4, 12, 3]
要手动查找最大值,您可以从第一个数字 10 开始,这就是最大值。然后你移动到下一个数字,6:
M
[10, 6, 8, 2, 4, 12, 3]
^
大于10吗?否,则移至下一个数字:
M
[10, 6, 8, 2, 4, 12, 3]
^
M
[10, 6, 8, 2, 4, 12, 3]
^
M
[10, 6, 8, 2, 4, 12, 3]
^
M
[10, 6, 8, 2, 4, 12, 3]
^
现在我们遇到一个比最大值 10 大的数字。所以我们移动最大值点:
M
[10, 6, 8, 2, 4, 12, 3]
^
然后继续:
M
[10, 6, 8, 2, 4, 12, 3]
^
现在列表已完成,M 指向 12。
现在您只需编码即可!
对我来说听起来像是家庭作业,但也许一些逻辑可以帮助你:
当你迭代列表时,重点是你想知道当前元素是否是所有其他元素的最大值。这可以通过将 MAX 保持为当前元素(例如 M*)并在 M* 和当前元素之间进行简单比较来解决。然后根据比较的结果更新M*。在迭代结束时,我认为你可以找出你的 MAX 在哪里。
Python 中的简单单行代码:
max = sorted(my_list)[-1]
这会将列表按从小到大的顺序排列,然后取最大的最终值。
在这里,我们使用名为“functools”的内置模块中提供的reduce函数,本质上“reduce”仅返回一个值,在本例中,该值是数字的最大值。因此,这里的主要逻辑是,如果当前数字大于列表中的下一个数字,则返回当前数字,否则,如果不满足条件,则返回下一个数字。
from functools import reduce
inp = input("Values separated by spaces: ")
arr = map(int, inp.split())
ans = reduce(lambda x, y: x if x > y else y, arr)
print(ans)
这是@OlympusMonds 答案中描述的算法的代码实现。如果您想在不使用 max() 函数或任何其他内置函数的情况下查找列表中的最大值,这非常有用:
num_list = [3, 1, 8, 0, 5, 9, 2, 4, 6, 7]
max_val = num_list[0] # Initialise max_val and set it to the first item in the list
for num in num_list:
if num > max_val:
max_val = num
您可以
print(max_val)
看到它返回列表中的最大值。在这种情况下,输出是 9
。
s=[10,11,12,9,10,11]
length = len(s)-1
for i in range(length):
if s[i] > s[i + 1]:
s[i], s[i + 1] = s[i + 1], s[i]
print(s[-1]) #12
def max(a):
res = a[0]
for i in a:
if res < i:
res = i
return res
array = (1, 2, 3, 4, 5, 6)
print(max(array))
你可以试试这个......
my_list = [0, 2, 5, 6, 5, 8, 5, 8, 8]
my_max = [ ]
for list in my_list:
if list > 7:
my_max = my_max + [list]
Print(my_max)
这应该输出
[8,8,8]
input_string =input("Enter a list numbers or elements separated by space: ")
userList = input_string.split()
l=list((map(int, userList)))
print(l)
a = (len(l))
temp=0
for i in range(0,a-1):
if l[i]>l[i+1]:
c=l[i]
if c>temp:
temp=c
else:
c= l[i+1]
if c>temp:
temp=c
print(temp)