Как повторить самый большой элемент в списке по длине списка - PullRequest
0 голосов
/ 04 ноября 2019

Напишите функцию Python all_change_to_max_end, которая принимает в качестве входных данных список целых чисел, определяет, какой из них больше, первый или последний элемент в списке, а затем устанавливает все другие элементы в качестве этого значения. Выведите измененный список.

Пример ввода и вывода:

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

Любая помощь будет принята с благодарностью!

Ответы [ 5 ]

2 голосов
/ 04 ноября 2019

Вам необходимо проверить максимум этих двух элементов (первого и последнего)

def all_change_to_max_end(a_list):
    return [max(a_list[0], a_list[-1])] * len(a_list)
0 голосов
/ 04 ноября 2019

вы можете сделать:

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, 5, 9]))

вывод

[11, 11, 11]
0 голосов
/ 04 ноября 2019

Сделайте это изменение

Когда вы делаете max (список), оно возвращает значение, а не список, поэтому умножение его на число является простым умножением.

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

так же

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

Это пример вывода

>>> a = [1, 2, 4, 9, 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, 3, 3, 3]
0 голосов
/ 04 ноября 2019

Передайте список в этой функции:

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))

Out [79]: [7, 7, 7, 7, 7, 7, 7, 7]

0 голосов
/ 04 ноября 2019

Правильный ответ: [max(a_list[-1], a_list[0])] * len(a_list).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...