为什么我不能从将一个列表附加到另一个列表中获得元素



我被要求将一个列表附加到另一个空列表中(原始列表中有一些更改(我尝试了以下代码,它显示错误的输出

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']
实现Python的方法是使用列表理解。试试这个:
names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
usernames = [n.lower().replace(' ','_') for n in names]
print (usernames)

现在,让我们跳到您的代码。问题出在线路username=(n.replace(' ','_'))上。在每次迭代中,您都要重新定义变量,在for循环的最后一次迭代之后,username指向列表中的最后一个元素。

这可能只是缩进问题,您希望在for循环的每次迭代中都有append操作,但意外地忘记了正确地缩进它。我已经删除了username变量,并将append移到for循环下。试试这个:

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']

相关内容

  • 没有找到相关文章

最新更新