求助!练习:创建用户名
原问题:写一个遍历 names 列表以创建 usernames 列表的 for 循环。要为每个姓名创建用户名,使姓名全小写并用下划线代替空格。对以下列表运行 for 循环:names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
应该会创建列表:
usernames = ["joey_tribbiani", "monica_geller", "chandler_bing", "phoebe_buffay"]
我的代码
names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
usernames = []
i = 0
for i in range(len(names)):
usernames = names.lower()
x = usernames.find(' ')
usernames = usernames[:x] + '_' + usernames
print(usernames)
报错
IndexError: list assignment index out of range 列表为空的时候不能用索引的方式赋值
names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
usernames = []
i = 0
for i in range(len(names)):
usernames.append(names.lower()) # 修改这一行代码
x = usernames.find(' ')
usernames = usernames[:x] + '_' + usernames
print(usernames)
names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
usernames =
print(usernames)
usernames 列表初始化时为 空列表,导致一开始 usernames 赋值超出索引值,导致报错
可以在初始化时候将列表创建好指定长度,即可:
names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
usernames = * len(names)
for i in range(len(names)):
usernames = names.lower()
x = usernames.find(' ')
usernames = usernames[:x] + '_' + usernames
print(usernames)
或者直接使用 append 函数,同2楼代码:
names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
usernames = []
for i in range(len(names)):
usernames.append(names.lower())
x = usernames.find(' ')
usernames = usernames[:x] + '_' + usernames
print(usernames)
页:
[1]