2024-06-07 06:12:27 发布
网友
嗨,有人能告诉我为什么这个代码打印出列表上的最后一项(“菲比·布菲”),而不是整个列表
names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"] usernames = [] for name in names: usernames = name.replace(" ","_") print(usernames)
多谢各位
您每次都在替换usernames的值,而不是像您可能希望的那样附加到列表中:
usernames
names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"] usernames = [] for name in names: usernames.append(name.replace(" ","_")) print(usernames)
这将输出您期望的结果:
['Joey_Tribbiani', 'Monica_Geller', 'Chandler_Bing', 'Phoebe_Buffay']
在您的代码中,您没有使用原始的usernames列表来保存任何数据,而是替换for循环的每个迭代中usernames所引用的内容-在for循环完成后,这是原始列表中的最后一个元素
您正在寻找append():
append()
for name in names: usernames.append(name.replace(" ","_"))
否则,您将在每次迭代中覆盖usernames,它是一个字符串,不再是一个列表。更多的Pythonic是使用列表理解:
Pythonic
usernames = [name.replace(" ", "_") for name in names]
您每次都在替换
usernames
的值,而不是像您可能希望的那样附加到列表中:这将输出您期望的结果:
在您的代码中,您没有使用原始的
usernames
列表来保存任何数据,而是替换for循环的每个迭代中usernames
所引用的内容-在for循环完成后,这是原始列表中的最后一个元素您正在寻找
append()
:否则,您将在每次迭代中覆盖
usernames
,它是一个字符串,不再是一个列表。更多的Pythonic
是使用列表理解:相关问题 更多 >
编程相关推荐