编写一个名为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
任何帮助将不胜感激!
您需要创建一个新列表:
def all_change_to_max_end(a_list):
maxval = max(a_list)
return [maxval for _ in a_list] # replace value from list with maxval
不将最大值乘以列表的长度。
正确的答案是:[max(a_list)] * len(a_list)
。
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))]
您应该写:
def all_change_to_max_end(a_list):
# notice the brackets around max(a_list)
return [max(a_list)] * len(a_list)