Похоже, ваш код должен сказать answer = []
, и это не вызовет проблем. Но основная проблема заключается в следующем:
answer = answer.extend(temp)
extend
изменяет answer
и возвращает None. Оставьте это как answer.extend(temp)
, и он будет работать. Вероятно, вы также захотите использовать метод append
, а не extend
- добавить в конец answer
один объект один объект (список temp
), в то время как extend
добавляет каждый элемент temp индивидуально, в конечном счете давая сглаженную версию того, что вы после: [1, 'a', 'x', 2, 'b', 'y', 3, 'c', 'z']
.
Но вместо того, чтобы изобретать колесо, это именно то, что встроенный zip
для:
>>> A = [1,2,3]
>>> B = ['a', 'b', 'c']
>>> C = ['x', 'y', 'z']
>>> list(zip(A, B, C))
[(1, 'a', 'x'), (2, 'b', 'y'), (3, 'c', 'z')]
Обратите внимание, что в Python 2, zip
возвращает список кортежей; в Python 3, он возвращает ленивый итератор (т. е. он строит кортежи по мере их запроса, а не предварительно вычисляет их). Если вы хотите поведение Python 2 в Python 3, вы передаете его через list
, как я сделал выше. Если вы хотите поведение Python 3 в Python 2, используйте функцию izip
из itertools.