Ошибка в том, что вы использовали
list2=list2.reverse()
, метод list.reverse()
меняет список на месте, сам метод возвращает None
. Чтобы исправить это, измените строку на следующее:
list2.reverse()
Кроме того, вы использовали
res_list.append(list1[i]+list2[i])
Это должно выглядеть следующим образом:
res_list.append(list1[i]+res[i])
Эти исправления дают выходные данные:
'An apple a day keeps the doctor away'
Другой способ решения этой проблемы заключается в использовании однострочных символов с использованием zip
, среза списка для обращения list2
и троичных операторов для применения None -> ''
logi c.
>>> list1 = ['A', 'app', 'a', 'd', 'ke', 'th', 'doc', 'awa']
>>> list2 = ['y', 'tor', 'e', 'eps', 'ay', None, 'le', 'n']
>>> ' '.join(''.join(y if y else '' for y in x) for x in zip(list1, list2[::-1]))
'An apple a day keeps the doctor away'