Главная /
Язык программирования Python /
Имеется следующий генератор для слияния двух отсортированных последовательностей: def merge(a1, a2): a1 = list(a1) a2 = list(a2) while a1 or a2: if a1 and (not a2 or a1[0] < a2[0]): r = a1 else: r = a2 yield r[0] del r[0] Какие ошибки или особенности и
Имеется следующий генератор для слияния двух отсортированных последовательностей:
def merge(a1, a2):
a1 = list(a1)
a2 = list(a2)
while a1 or a2:
if a1 and (not a2 or a1[0] < a2[0]):
r = a1
else:
r = a2
yield r[0]
del r[0]
Какие ошибки или особенности имеет эта программа?
вопрос
Правильный ответ:
в последней строке каждый раз удаляется элемент из временного списка, а не из
a1
или a2
: генератор зациклится
генератор оставит за собой временный список, так как
del
происходит после yield
генератор будет портить переданные ему списки
ошибок нет
Сложность вопроса
66
Сложность курса: Язык программирования Python
62
Оценить вопрос
Комментарии:
Аноним
Какой человек ищет данные вопросы интуит? Это же элементарно (я не ботан)
16 апр 2019
Аноним
Если бы не опубликованные ответы - я бы не решил c этими тестами интуит.
25 фев 2017
Другие ответы на вопросы из темы интернет-технологии интуит.
- # Какое значение threadsafety соответствует ситуации, когда потоки могут одновременно использовать DB-API 2.0 совместимый модуль, но не соединения, получаемые на основе этого модуля
- # Какие из приведенных ниже сравнений обязательно дадут True, если объекты x и y имеют одинаковые значения?
- # Какое множество строк описывает регулярное выражение [ac][ab]?
- # Как можно получить список полей сообщения msg?
- # Что будет выведено в результате выполнения следующего кода: import email.Header print email.Header.decode_header("This is subject")