почему я не могу получить элементы от добавления одного списка в другой - PullRequest
2 голосов
/ 21 апреля 2020

Меня попросили добавить один список в другой пустой список (с некоторыми изменениями в исходном списке). Я попробовал следующий код, он показывает неправильный вывод

names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
usernames=[]
change= [n.lower() for n in names]
for n in names:
    username=(n.replace(' ','_'))
usernames.append(username)
print (usernames)

ожидаемый вывод:

joey_tribbiani
monica_geller
chandler_bing
phoebe_buffay

что я получаю:

['Phoebe_Buffay']

1 Ответ

1 голос
/ 21 апреля 2020

Pythoni c способ реализации - использование списка . Попробуйте это:

names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
usernames = [n.lower().replace(' ','_') for n in names]
print (usernames)

Теперь перейдем к вашему коду. Проблема лежит на линии username=(n.replace(' ','_')). На каждой итерации вы переопределяете переменную, и после последней итерации for l oop, username указывает на последний элемент в вашем списке.

Может быть, это просто проблема с отступом, и вы хотели append операция в каждой итерации для l oop, но случайно забыл сделать отступ правильно. Я удалил переменную username и переместил append ниже для l oop. Попробуйте это:

names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
usernames = []
for n in names:
    usernames.append(n.lower().replace(' ','_'))
print(usernames)

Вывод:

['joey_tribbiani', 'monica_geller', 'chandler_bing', 'phoebe_buffay']
...