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

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

样本输入和输出:

all_change_to_max_end([1,2,4,9,3]) # should be [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,8]

40

任何帮助将不胜感激!

lcflhc 回答:如何按列表的长度重复列表中的最大元素

您需要检查这两个元素(第一个和最后一个)的最大值

def all_change_to_max_end(a_list):
    return [max(a_list[0],a_list[-1])] * len(a_list)
,

正确的答案是:[max(a_list[-1],a_list[0])] * len(a_list)

,

在此函数中传递列表:

def all_change_to_max_end(x):
    #select maximum and converting it to list
    return [max(x[0],x[-1])]*(len(x)) 

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

print(all_change_to_max_end(numbers))
  

出[79]:[7、7、7、7、7、7、7、7]

,

进行此更改

当您执行max(list)时,它返回的值不是列表,因此将其乘以数字就是简单的乘法。

max(list) * len(list) #let max = 10 and length = 4,then its output is 40

这样做

[max(list[0],list[-1])] 

这是示例输出

>>> a = [1,2,3]
>>> def all_change_to_max_end(a_list):
...     return [max(a_list[0],a_list[-1])] * len(a_list)
...
>>> all_change_to_max_end(a)
[3,3]
,

您可以:

def all_change_to_max_end(l):
    a = l[0]
    b = l[-1]
    return [max(a,b)] * len(l)

print(all_change_to_max_end([11,9]))

输出

[11,11,11]
本文链接:https://www.f2er.com/3166097.html

大家都在问