Результат — ['beegeek', 'y', 'e', 's', 'no']. extend перебирает строку посимвольно, а append добавляет строку как один элемент.
Как изменится список после применения методов extend и append
Результат — ['beegeek', 'y', 'e', 's', 'no']. extend перебирает строку посимвольно, а append добавляет строку как один элемент.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Определите, какой результат будет выведен на экран после выполнения представленной программы. Варианты ответов:
- ['beegeek', 'y', 'e', 's', 'n', 'o']
- ['beegeek', 'yes', 'no']
- ['beegeek', 'y', 'e', 's', 'no']
- ['beegeek', 'yes', 'n', 'o']
- возникнет ошибка
data = ['beegeek']
data.extend('yes')
data.append('no')
print(data)
Ответ
Результат — ['beegeek', 'y', 'e', 's', 'no']. extend перебирает строку посимвольно, а append добавляет строку как один элемент.
data.extend('yes') добавляет все элементы переданного итерируемого объекта. Элементами строки являются символы, поэтому появляются три отдельные строки 'y', 'e', 's'.
data.append('no') ничего не перебирает и добавляет один объект — строку 'no'.
print(data) # ['beegeek', 'y', 'e', 's', 'no']
Чтобы добавить 'yes' целиком через extend, пришлось бы передать список ['yes']. Оба метода изменяют исходный список и возвращают None, поэтому присваивать их результат обратно в data не нужно.