如何按照列表的长度重复列表中的最大元素

问题描述 投票:0回答:3

编写一个名为all_change_to_max_end的Python函数,该函数将一个整数列表作为输入,确定该列表中的第一个或最后一个元素中较大的那个,然后将所有其他元素设置为该值。输出更改后的列表。

样本输入和输出:

all_change_to_max_end([1, 2, 4, 9, 3]) # should be [3, 3, 3, 3, 3] 

all_change_to_max_end([11, 5, 9])      # should be [11, 11, 11] 

all_change_to_max_end([2, 11])         # should be [11, 11]

我尝试使用:

def all_change_to_max_end(a_list):

    return max(a_list) * len(a_list)

但是这不起作用,因为它是最大数乘以总长度的结果

all_change_to_max_end([2, 10, 4, 8]

40

任何帮助将不胜感激!

python list
3个回答
0
投票

您需要创建一个新列表:

def all_change_to_max_end(a_list):

    maxval = max(a_list)
    return [maxval for _ in a_list]  # replace value from list with maxval

不将最大值乘以列表的长度。


0
投票

正确的答案是:[max(a_list)] * len(a_list)


0
投票
numbers = [1, 5, 8, 4, 3, 7, 9, 7]

def assign_all_max(x):
    return [max(x[1], x[-1]) for i in range(len(x))]

-1
投票

您应该写:

def all_change_to_max_end(a_list):

    # notice the brackets around max(a_list)
    return [max(a_list)] * len(a_list)
© www.soinside.com 2019 - 2024. All rights reserved.