В Python, как мне заменить одни целые числа в списке другими целыми числами? - PullRequest
1 голос
/ 28 мая 2020

Я новичок в Python.

У меня есть список чисел: lst = [1, 7, 2, 10, 20, 4]

Я пытаюсь чтобы заменить три верхних числа в списке (7, 10 и 20) их соответствующими половинами 3,5, 5 и 10.

Это код, который у меня есть. Я мог вычислить половинки, но не знаю, как заменять числа в списке.

lst = [1, 7, 2, 10, 20, 4]

maxvalue1 = max (1 , 7, 2, 10, 20, 4) print (maxvalue1)

maxvalue2 = max (1, 7, 2, 10, 4) print (maxvalue2)

maxvalue3 = max (1 , 2, 4, 7) print (maxvalue3)

Halfofmaxvalue1 = maxvalue1 / 2 print (Halfofmaxvalue1)

Halfofmaxvalue2 = maxvalue2 / 2 print (Halfofmaxvalue2)

Halfofmaxvalue3 = maxvalue3 / 2 печать (Halfofmaxvalue3)

1 Ответ

0 голосов
/ 28 мая 2020

Вы можете сделать следующее:

list = [1, 2, 3, 4, 5, 11, 23, 1, 312, 123, 121]

# sort the list so that the largest are first
list = sorted(list, reverse=True)
# get the 3 largest
max3 = list[0:3]
# if the value x is one of the largest divide it by 2, else keep it the same
l = [x//2 if x in max3 else x for x in list]

print(list) # before replacement
print(l) # after replacement

Вывод:

[312, 123, 121, 23, 11, 5, 4, 3, 2, 1, 1]
[156, 61, 60, 23, 11, 5, 4, 3, 2, 1, 1]
...