Как напечатать новый список из предыдущего списка, используя функции python? - PullRequest
0 голосов
/ 13 апреля 2020
def send_messages(message):
    while message:
        print(message)
        message.pop()
        sent_messages.append(message)

message = ['hello', 'i am on my way', 'cant talk right now']
sent_messages = []

send_messages(message)

print(message)
print(sent_messages)

Я изучаю python и пытаюсь напечатать 2 списка. Я пытаюсь переместить значения из одного списка в другой, используя методы pop. () И append. (). Однако, когда я запускаю программу, она показывает только пустые квадратные скобки списка sent_messages без значений в них.

Ответы [ 2 ]

0 голосов
/ 13 апреля 2020

вы добавляете в список sent_messages только ссылки из вашего списка message пока вы удаляете все элементы из вашего списка message, в итоге у вас будут ссылки на пустой список (начиная с message список будет пустым)

вы можете использовать:

message = ['hello', 'i am on my way', 'cant talk right now']

sent_messages = message.copy()
message = []


print(message)
print(sent_messages)

вывод:

[]
['hello', 'i am on my way', 'cant talk right now']

, если вы хотите выучить Python и использовать list.pop и list.append вы можете использовать:

message = ['hello', 'i am on my way', 'cant talk right now']

def send_messages(message):
    new_list = []
    while message:
        new_list.append(message.pop())  # keep in mind that .pop will pop out the last element

    return new_list[::-1] # reverse to keep message elements order

sent_messages = send_messages(message)
print(message)
print(sent_messages)

вывод:

[]
['hello', 'i am on my way', 'cant talk right now']
0 голосов
/ 13 апреля 2020

Попробуйте это

send_messages=[]
def send_messages(message):
    while message:
        sent_messages.append(message.pop(0))

message = ['hello', 'i am on my way', 'cant talk right now']
sent_messages = []

send_messages(message)

print("message list" ,message)
print("sent_messages list", sent_messages)

Вывод

message list []
sent_messages list ['hello', 'i am on my way', 'cant talk right now']
...