Проблема с Функциями в python
Есть код:
def show_messages(msg):
for message in msg:
print(message)
def send_messages(msg, sent_messages):
for m in msg:
print(m)
while msg:
x = msg.pop()
sent_messages.append(x)
print(msg)
print(sent_messages)
msg = ['hello', 'how are you', 'hi']
sent_messages = []
send_messages(msg, sent_messages)
show_messages(msg)
И вот что нужно сделать:Вызовите функцию send_messages() для копии списка сообщений.После вызова функции выведите оба списка и убедитесь в том, что в исходном списке остались все сообщения. Не понимаю как это сделать.Помогите пожалуйста.
Ответы (1 шт):
Автор решения: Vestalt
→ Ссылка
В python есть несколько вариантов простого копирования списка:
- Срез
new_list = old_list[:]
- Списочное выражение
new_list = [el for el in old_list]
- Метод copy
new_list = old_list.copy()
- Конструктор (Update)
new_list = list(old_list)
Результат они дают одинаковый. Можно, конечно, сделать полноценный цикл с append, но в этом нет необходимости.
Итоговый код:
def send_message(list_):
return list_[:]
old_list = ['message 1', 'message 2', 'message 3']
new_list = send_message(old_list)
print(old_list, '\n', new_list)