Я пытаюсь выяснить проблему с кодом уже пару дней, но не повезло. Я уменьшаю длину массива на основе некоторого процента максимального значения в том же массиве, но получаю некоторую ошибку с типом значений. Я также следовал за другим сообщением, но не мог исправить эту ошибку функции и плавать. Может кто-нибудь, пожалуйста, направьте меня, где я делаю не так здесь? Первая маленькая функция дает мне максимальный элемент в массиве, умноженный на некоторое значение процента, как показано ниже:
p = [23, 45.3, 10, 7.56, 5]
percent = 0.15
def max_p(p,percent):
max_val = max(p) * percent
return max_val
и затем я вызываю значение из вышеуказанной функции для его функции, как указано ниже:
n_array = [3,2,1,4,5,7]
Olen = len(p)
def rmv(p, n_array,percent):
max_val = max_p(p,percent)
for i in p:
if i < (max_val):
p.remove(i)
Nlen = len(p)
kunfu = Olen - Nlen
tr_new = n_array[: len(n_array) - kunfu]
return tr_new
когда я запускаю все, он выдает ошибку
max_val = max(p) * percent
TypeError: unsupported operand type(s) for *: 'function' and 'float'
Я пытался использовать str и float для выравнивания max (p) и процентов по совместимому формату, но все равно это выдает ошибку типа: function and float или str и int и т. Д. Я вызываю функцию таким образом
p = [23, 45.3, 10, 7.56, 5]
n_array = [3,2,1,4,5,7]
percent = 0.15
ans = rmv(p, n_array,percent)
print ans