#python #list
#python #Список
Вопрос:
def convolute_0(xs,ys):
sum([x*y for x,y in zip(xs,ys[::-1])])
assert convolute_0([1], [10] ) == 1*10
assert convolute_0([1,2], [10,20] ) == 1*20 2*10
assert convolute_0([1,2,3], [10,20,30] ) == 1*30 2*20 3*10
Я хочу умножить xs на обратный список ys.С помощью [::-1] я получаю ошибку утверждения.
Комментарии:
1. Ваш метод ничего не возвращает
Ответ №1:
Как прокомментировал @arzo, ваш метод не возвращает ничего, что является ошибкой. Это способ:
def convolute_0(xs,ys):
return sum([x*y for x,y in zip(xs,ys[::-1])])
assert convolute_0([1], [10] ) == 1*10
assert convolute_0([1,2], [10,20] ) == 1*20 2*10
assert convolute_0([1,2,3], [10,20,30] ) == 1*30 2*20 3*10
Ответ №2:
проблема здесь в том, что вы не можете изменить тип int с помощью ys[::-1], который вы можете сделать:
def convolute_0(xs,ys):
return sum([x*int(y) for x,y in zip(xs,[i[::-1] for i in [str(i) for i in ys]])])
Комментарии:
1.
xs
иys
являются списками, поэтому возможно обратное